0

我正在使用 Google Healthcare API,并且在演练中有一个步骤使用 netcat 将 HL7 消息发送到 MLLP 适配器。

(我使用nmap下载ncat for Windows)

我有适配器在本地运行,但他们提供的命令是为 Mac/Nix 用户编写的,我在 Windows 上。

echo -n -e "\x0b$(cat hl7.txt)\x1c\x0d" | nc -q1 localhost 2575 | less

所以我尝试为windows powershell重写这个:

$hl7 = type hl7.txt
Write-Output "-n -e \x0b" $hl7 "\x1c\x0d" | ncat -q1 localhost 2575 | less

当我尝试这个时,我得到一个错误,“less”是无效的,而且 -q1 也是一个无效的命令。

如果我删除-q1并且| less命令执行时没有输出或错误消息。

我想知道我是在这里错误地使用了 ncat 还是错误地使用了写入输出?

-q1 参数是什么?

根据我的研究,它似乎不是一个有效的 ncat 参数。

我一直在关注这个演练: https ://cloud.google.com/healthcare/docs/how-tos/mllp-adapter#connection_refused_error_when_running_locally

4

1 回答 1

1

We're really converting the echo command, not the ncat command. The syntax for ascii codes is different in powershell.

[char]0x0b + (get-content hl7.txt) + [char]0x1c + [char]0x0d | 
  ncat -q1 localhost 2575 

in ascii: 0b vertical tab, 1c file seperator, 0d carriage return http://www.asciitable.com

Or this. `v is 0b and `r is 0d

"`v$(get-content hl7.txt)`u{1c}`r" | ncat -q1 localhost 2575 

If you want it this way, it's the same thing. All three ways end up being the same.

"`u{0b}$(get-content hl7.txt)`u{1c}`u{0d}" | ncat -q1 localhost 2575 
于 2020-05-22T21:36:52.473 回答