从MacNix的例子中转换Windows上的ncat命令。

问题描述 投票:0回答:1

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

(我用nmap下载了Windows的ncat)

我在本地运行适配器,但他们提供的命令是为MacNix用户编写的,而我在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.comhealthcaredocshow -tosmllp -adapter#connection_refused_error_when_running_locally。

powershell google-cloud-platform netcat google-healthcare-api
1个回答
1
投票

我们真正转换的是echo命令,而不是ncat命令。 ascii代码的语法在powerhell中是不同的。

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

在ascii中:0b垂直制表符,1c文件分隔符,0d回车。http:/www.asciitable.com

或者这样。 `v是0b,`r是0d。

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

如果你想用这种方式,那就是同样的事情。 这三种方式最后都是一样的。

"`u{0b}$(get-content hl7.txt)`u{1c}`u{0d}" | ncat -q1 localhost 2575 
© www.soinside.com 2019 - 2024. All rights reserved.