我有一系列命令用於更新 Linux 機器上的韌體。當我使用串行連接連接到機器時,我可以一一鍵入命令,並且它們工作正常。我想透過運行批次檔中的命令來自動化此過程。
我的串行連接配置檔案保存為“i5IS-COM4”,因此我運行第一個批次檔“send.bat”,其中內容如下:
commands.bat | putty -load i5IS-COM4
Commands.bat 內容如下:
echo "this command works!"
當我運行“send.bat”時,它會正確打開終端並連接到我的 Linux 計算機,但 echo 命令不起作用。如果有人可以幫助我讓我的批次文件正常工作,我將不勝感激!
我已經查看了以下帖子和其他一些帖子,但尚未找到解決我的問題的方法。
編輯:
當我使用 plink 而不是 putty 使用命令重定向時,我只是得到一個空終端。執行以下命令:
start plink.exe -load i5IS-COM4 < commands.txt
使用 Commands.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