web-dev-qa-db-ja.com

PuTTYコマンドファイルに引数を渡す方法

PuTTYを起動し、テキストファイルにリストされているコマンドを実行するバッチファイルがあります。リモートサーバーで実行するコマンドを含むテキストファイルにパラメーターを渡せるようにしたい。

これは私が現在持っているものです-

start C:\Users\PuTTY.exe -load "server" -l userID -pw Password -m commands.txt

たとえば、バージョン番号を引数としてcommands.txtファイルに渡す方法はありますか?

4
Aarti B

commands.txtをその場で生成する必要があります。

set PARAMETER=parameter
echo ./myscript.sh %PARAMETER% > commands.txt
start C:\Users\PuTTY.exe -load "server" -l userID -pw Password -m commands.txt

補足:タスクを自動化するには、plink.exeの代わりに PuTTY.exe の使用を検討する必要があります。

set PARAMETER=parameter
echo ./myscript.sh %PARAMETER% > commands.txt
plink.exe -load "server" -l userID -pw Password -m commands.txt

Plinkは、コマンドラインでコマンドを受け入れることもできます。これにより、タスクがさらに簡単になります。

plink.exe -load "server" -l userID -pw Password ./myscript.sh parameter
4
Martin Prikryl

私はこれに頭を悩ませていましたが、次の簡単な方法でこれを簡単に達成できることに気づきました。

PuTTYを使用して実行したいテキストファイルがあり、実行時の引数も必要です。この場合、静的テキストファイルではなく、windowsbashを使用してその場でファイルを生成しました。以下のユースケースでは、選択したホストで「Execute.txt」が実行されます

@ECHO OFF

set prodhost[1]=Host1 <br/>
set prodhost[2]=Host2<br/>

ECHO Please select the box where you want to perform checkout.<br/>
ECHO 1. Host1 <br/>
ECHO 2. Host2<br/>
set /p Host="Enter Your Option: "


echo echo "Login and switch user was successful" <br/>
echo hostname <br/>
echo Sudo su - 'username' ^<^<  EOF <br/>
echo <br/>
echo EOF <br/>
)>"Execute.txt" <br/>

"plink.exe" -l %username% -ssh !prodhost[%Host%]! -m Execute.txt

結論:bashを使用して実行するスクリプトをその場で生成し、ファイルに保存してから、Plinkを使用してプッシュします。

0
Balaji