转义 Netcat 中的符号

Escape ampersands in Netcat

如何从 Windows 命令行向 ncat.exe 发送以下命令?

以下命令工作正常。

echo GET /main/main.js HTTP/1.1BHost: www.example.comBConnection: closeBB | tr "B" "\n" | ncat -C www.example.com 80

我认为以下请求因 & 符号而无效。

echo GET /main/main.js?param1=true^&param2=true HTTP/1.1BHost: www.example.comBConnection: closeBB | tr "B" "\n" | ncat -C www.example.com 80

是否有任何变通方法来转义&符号?我一直在尝试类似的方法,但无济于事。

set "req=GET /main/main.js?param1=true^&param2 HTTP/1.1\nHost: www.example.com\nConnection: close\n\n"
echo %req% | tr "B" "\n" | ncat -C www.example.com 80

在您想要 echo 的字符串周围使用双引号,即:

echo "GET /main/main.js?param1=true^&param2=true HTTP/1.1BHost: www.example.comBConnection: closeBB" | tr "B" "\n" | ncat -C www.example.com 80

但作为对 tr 东西的改进,最好使用类似的东西:

echo -e "GET /main/main.js?param1=true^&param2=true HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n" | ncat -C www.example.com 80

假设 Windows 上的 echo 命令支持“-e”标志。