タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【PSFTP】バッチファイル実行途中でのSleep処理

WindowsからSFTP処理ができるツールPSFTP」のバッチ処理にて、 スリープ処理(指定した時間を何もしないで待機する)を追加する必要性が出てきたので、記録しておきます。

DOS窓でのSleep処理

timeout/sleepコマンドで実行を一時停止するを確認すると、sleepコマンドではなく、timeoutコマンドなんですね。

5秒待機する
timeout 5

timeout 5 /nobreak >nul  ※/nobreakオプションを付でメッセージを非表示に!

バッチファイル作成

次に、実行するバッチファイルを準備。
ローカルのWidnows側のコマンドを実行する場合には、「!」を先頭に付けます。

sftpbat.txt
put test1.txt
! timeout 5 /nobreak >nul
put test2.txt
bye

PSFTPをバッチファイルにて実行する方法

(PuTTYユーザマニュアルの日本語訳) 6.1 PSFTPを始める - 6.1 Starting PSFTPを参考にさせていただきました。

オプションbで、実行させたいバッチファイルを指定します。

psftp.exe userName@hostName(or IP Address) -b batchFilePath

実行結果

c:\>cd c:\psftp

c:\psftp>dir /b
sftpbat.txt
psftp.exe
test1.txt
test2.txt

c:\psftp>psftp.exe hogehoge@192.168.1.2 -b sftpbat.txt
Using username "hogehoge".
hogehoge@192.168.1.2's password: ********
Remote working directory is /home/hogehoge
local:test1.txt => remote:/home/hogehoge/test1.txt
(※5秒待機)
local:test2.txt => remote:/home/hogehoge/test2.txt

c:\psftp>

何とか実現できました!