显示和保存 Plink 输出

Both display and save Plink output

我正在使用 plink.exe 登录远程 ssh 会话,以使用批处理脚本执行某些任务。在日志文件和屏幕上获取这些命令的输出对我来说非常重要。

我尝试使用通常的批处理方式,即 plink servername -m cmd.txt>logfile.log 方式,但问题是它不会在 Windows 终端上显示批处理脚本 运行 .

然后我找到了Plink的-sshlog选项。这完成了工作,即我可以在屏幕上和日志文件中获得输出,但这导致输出如下:

00000f90 56 4c 41 4e 2a 2a 0d 0a 20 65 6e 63 61 70 73 75 VLAN**.. 封装 00000fa0 6c 61 74 69 6f 6e 20 64 6f 74 31 51 20 34 30 34 点 1Q 404 00000fb0 0d 0a 20 69 70 20 61 64 64 72 65 73 73 20 31 30 .. IP 地址 10 00000fc0 2e 37 31 2e 31 39 31 2e 31 34 35 20 32 35 35 2e .71.191.145 255.

我的实际输出从上面文本中的 "VLAN**.. encapsu" 开始 输出有这些“00000010 74 65 72 ... "bla bla characters which I do not want. Plus the main output (that would be displayed if i was using Plink interactively is "word-wrapped”,看起来很糟糕,很难理解一般用户

有什么方法可以防止 Plink 在日志文件中输出不需要的 'sshlog' 字符吗?或者是否有任何其他方法可以在批处理脚本中的 Plink/PuTTY 会话中同时在屏幕上获取输出和日志失败?

我尝试了 -sshlog-sshrawlog 但输出相同。还根据文档尝试了 -sessionlog,但它不起作用!

我也试过> file.txt但是它给了一个空文件!

预期结果:

encapsulation dot1Q 404 
ip address 10.71.191.145

Plink 中没有仅记录可读输出的命令行开关。

您必须在 运行 Plink 之前配置 "Printable output" 登录 Windows 注册表。


但还有其他选择。
参见 Displaying Windows command prompt output and redirecting it to a file

所以这应该可以满足您的需求:

powershell "plink -batch servername -m cmd.txt | tee logfile.log"