透過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 使用 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

相關內容