通过PuTTY串行连接运行批处理命令

通过PuTTY串行连接运行批处理命令

我有一系列命令,用于更新 Linux 机器上的固件。当我使用串行连接连接到机器时,我可以逐个输入命令,它们工作正常。我想通过在批处理文件中运行命令来自动执行此过程。

我有一个串行连接的配置文件,保存为“i5IS-COM4”,因此我运行我的第一个批处理文件“send.bat”,其内容为:

commands.bat |  putty -load i5IS-COM4

并且commands.bat内容为:

echo "this command works!"

当我运行“send.bat”时,它会正确打开一个终端并连接到我的 Linux 机器,但 echo 命令不起作用。如果有人能帮助我使批处理文件正常工作,我将不胜感激!

我已查看了以下帖子和许多其他帖子,但尚未找到解决我的问题的方法。

从 bat 文件登录 PuTTY 后,从文件中运行多个命令

编辑:

当我使用 plink 而不是 putty 进行命令重定向时,我只得到一个空终端。运行以下命令: start plink.exe -load i5IS-COM4 < commands.txt 使用如下的命令.txt: echo "this command works!"; /bin/bash 返回以下终端: 在此处输入图片描述

答案1

PuTTY 是 GUI 应用程序,而不是控制台应用程序。您不能将输入/输出重定向与 GUI 应用程序一起使用。

无法通过串行连接使用 PuTTY 自动在服务器上执行命令。


虽然你应该能够使用Plink(PuTTY 命令行连接工具)

Plink 与 PuTTY 等效,只不过它是一个控制台应用程序,因此您可以使用输入/输出重定向:

commands.bat | plink -load i5IS-COM4

虽然您的“bat”文件实际上不是一个批处理文件(它会生成设备命令),而是一个直接包含设备命令的文本文件,但您希望使用文件的内容作为输入,而不是其执行的输出:

plink -load i5IS-COM4 < commands.bat

相关内容