« perl で web にアクセス (LWP::Simple) | メイン | ユーザ認証を要するページにperlでアクセス »

2004年05月16日

waitfor コマンド

Waitfor コマンドは Windows Server 2003 からの新しいコマンドで、シグナルを用いて複数のコンピュータの同期をとることができる。

構文1:シグナルを待つ
waitfor [/t TimeoutInSeconds] SignalName
SignalName という名のシグナルを待つ。シグナルが来るか、TimeoutInSeconds 秒経過するとこのコマンドは終了する。「/t TimeoutInSeconds」を省略したときは無期限にシグナルを待機し続ける。

構文2:シグナルを送る
waitfor [/s Computer [/u [Domain\]User [/p [Password]]]] /si SignalName
/s シグナルの送り先コンピュータ名またはIPを指定。規定値はローカルコンピュータ。
/si 送るシグナルの名前を指定。
/u 指定したユーザの権限で実行。 /p でパスワードも指定する。

これを使うと複数のバッチを同期させたり、複数のコンピュータの同期をバッチで行うことが可能である。
以前は同様のことをしたいときは、テンポラリのファイルを作成するなどして実現していたと聞く。 waitfor コマンドを使うと、ゴミも残らず、タイムアウトも指定できるなど利点が大きい。


例:
comp1 で foo1.bat, comp2 で foo2.bat を実行する。 foo2.bat の終了を foo1.bat の中で待つ。

##### comp1 / foo1.bat #####
echo comp2 の foo2.bat を待ちます。
waitfor foosignal
echo comp2 の foo2.bat は終わったようだ。

##### comp2 / foo2.bat #####
echo foo2.bat がスタートします。
////// 時間のかかる仕事 //////
waitfor /s comp1 /si foosignal

投稿者 augustus : 2004年05月16日 19:33

トラックバック

このエントリーのトラックバックURL:
http://www.augustus.to/cgi-bin/blog/mt-tb.cgi/63

コメント

コメントしてください




保存しますか?