LoginSignup
4
5

More than 5 years have passed since last update.

WSH で、外部プログラムの終了を待ってから次の行に進む

Last updated at Posted at 2016-10-16

Windows でバッチ処理をしたり、簡単な処理をおこなうツールを作るときに WSH (Windows Script Host) というのをよく使います。

JScript や VBScript で気軽に書けてコンパイルも要らないので地味ながら結構便利なんですよね。

で、この処理の中で外部プログラムの実行をすることが多いのですが、そのときの同期・非同期処理のやり方をよくド忘れするので、簡単にメモ。

環境

  • Windows 7
  • JScript

参考

比較

待たないほう

var shell = new ActiveXObject('WScript.Shell');

shell.Run('notepad');
WScript.Echo('メモ帳が終了する前にダイアログ表示');
  • 待たないし、エラーコードも必ず 0 になる。

待つほう

var shell = new ActiveXObject('WScript.Shell');

shell.Run('notepad', 1, true);
WScript.Echo('メモ帳が終了してからダイアログ表示');
  • 2 番目の引数はウィンドウの表示に関するオプションで 1 は標準値。
  • 3 番目の引数が true のときに終了を待つ。標準値は false
  • エラーコードは、きちんとプログラムの実行結果が返る。
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5