Linuxマシンのファームウェアを更新するために使用する一連のコマンドがあります。シリアル接続を使用してマシンに接続すると、コマンドを1つずつ入力でき、正常に動作します。コマンドをバッチファイルで実行して、この手順を自動化したいと思います。
シリアル接続のプロファイルを「i5IS-COM4」として保存しているので、最初のバッチファイル「send.bat」を実行します。
commands.bat | PuTTY -load i5IS-COM4
そして、commands.batは次のように読み取ります。
echo "this command works!"
'send.bat'を実行すると、ターミナルが正しく開き、Linuxマシンに接続しますが、echoコマンドが機能しません。誰かが私のバッチファイルを機能させるのを手伝ってくれるなら、それは大歓迎です!
私は次の投稿と他の多くの投稿を調べましたが、私の問題の解決策をまだ見つけていません。
batファイルからPuTTYにログインした後、ファイルから複数のコマンドを実行します
編集:
PuTTYの代わりにplinkを使用してコマンドリダイレクトを使用すると、空のターミナルが表示されます。次のコマンドを実行します:start plink.exe -load i5IS-COM4 < commands.txt
次のようにcommands.txtを使用します:echo "this command works!"; /bin/bash
は次の端末を返します:
PuTTYはGUIアプリケーションであり、コンソールアプリケーションではありません。 GUIアプリケーションでは入出力リダイレクトを使用できません。
シリアル接続を介してPuTTYでサーバー上でコマンドを自動的に実行する方法はありません。
Plink(PuTTYコマンドライン接続ツール) を使用できるはずですが。
PlinkはPuTTYと同等ですが、コンソールアプリケーションであるため、入出力リダイレクトを使用できます。
commands.bat | plink -load i5IS-COM4
「bat」ファイルは実際には(デバイスのコマンドを生成する)バッチファイルではなく、デバイスのコマンドを直接含むテキストファイルであるため、使用する必要があります。実行の出力ではなく、入力としてのファイルの内容:
plink -load i5IS-COM4 < commands.bat