サイトアイコン puti se blog

バッチファイル連携に使える”シグナル”を待つWindowsコマンド。別のバッチファイルからの連絡を待つ事が出来るプロセス間通信

Linuxには”シグナル”を受け取るtrapというコマンドがあったり、シグナルを送信するkillコマンドがありますが、今までWindowsには存在しませんでした。
最近、Windowsの標準コマンドプロンプトでもシグナルを使用出来る事を知りました!

シグナルとは?

シグナルとは、「プロセスから別のプロセスへイベントの発生通知」をする信号です。
あるプロセスが別のプロセスからシグナルを受信し連携することが出来ます。

シグナルでバッチファイル連携が出来るWindowsコマンド「waitfor」の使い方

こんなマニアックなコマンドがWindows上のコマンドプロンプトで使用できるとは知りませんでした、、、
Linuxのシェルスクリプトでもなかなかお目にかからないですが。

このツールにより、システム上でシグナルを送信したり待機したりできます。
/S が指定されていない場合、シグナルはメイン内のすべてのシステムにブロードキャストされます。
/S が指定されている場合、シグナルは指定したシステムにのみ送信されます。

環境:

Windows 7には標準コマンドとして存在しました。

コマンドプロンプトでシグナル待ちをしてみる

以下のコマンドで

WAITFOR CopyDone /T 10000

の条件までバッチ処理を停止しています。

別のコマンドプロンプトからシグナルを送信してみる

別のコマンドプロンプトを立ち上げて以下のコマンドでシステムに「CopyDone」という名前のシグナルを送信します

WAITFOR /SI CopyDone

シグナル待ちのコマンドプロンプトでシグナル受信を確認

すると、

だったコマンドプロンプトは”待ち”を終えて、プロンプトに戻ります。

なるほどー、マニアックですねー

モバイルバージョンを終了