最終更新日付: 2019年7月13日
Linuxには”シグナル”を受け取るtrapというコマンドがあったり、シグナルを送信するkillコマンドがありますが、今までWindowsには存在しませんでした。
最近、Windowsの標準コマンドプロンプトでもシグナルを使用出来る事を知りました!
レジュメ
シグナルとは?
シグナルとは、「プロセスから別のプロセスへイベントの発生通知」をする信号です。
あるプロセスが別のプロセスからシグナルを受信し連携することが出来ます。
シグナルでバッチファイル連携が出来るWindowsコマンド「waitfor」の使い方
こんなマニアックなコマンドがWindows上のコマンドプロンプトで使用できるとは知りませんでした、、、
Linuxのシェルスクリプトでもなかなかお目にかからないですが。
このツールにより、システム上でシグナルを送信したり待機したりできます。
/S が指定されていない場合、シグナルはメイン内のすべてのシステムにブロードキャストされます。
/S が指定されている場合、シグナルは指定したシステムにのみ送信されます。
環境:
Windows 7には標準コマンドとして存在しました。
コマンドプロンプトでシグナル待ちをしてみる
以下のコマンドで
WAITFOR CopyDone /T 10000
- “CopyDone”というシグナルを受信するか
- 10000秒待つか
の条件までバッチ処理を停止しています。
別のコマンドプロンプトからシグナルを送信してみる
別のコマンドプロンプトを立ち上げて以下のコマンドでシステムに「CopyDone」という名前のシグナルを送信します
WAITFOR /SI CopyDone
シグナル待ちのコマンドプロンプトでシグナル受信を確認
すると、
- “CopyDone”というシグナルを受信するか
- 10000秒待つか
だったコマンドプロンプトは”待ち”を終えて、プロンプトに戻ります。
なるほどー、マニアックですねー