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>
何とか実現できました!