2009年3月15日 8:57 am #7239
Participant
どうも WshScriptExec オブジェクトの仕様を勘違いしていたようです。WSHのサンプルコードでCALC.EXE(非同期なプログラム)を起動して、その終了を待つ例があったので真似したのですが、コマンドラインツールの標準出力を得るにはwhileループで待機する必要はなく、StdOutプロパティを1回参照すればよいようです。
WSHにお詳しい方、いかがでしょうか?
#title = “DOSコマンド実行”
#tooltip = “DOSコマンドを実行し、結果をアウトプットバーに出力します。”var sCmd
if ((sCmd = prompt(“input command:”, “”)) == “”) { Quit(); }
var wsh = new ActiveXObject(“WScript.Shell”);
wExec = wsh.Exec(“%ComSpec% /c ” + sCmd + “n”);OutputBar.Visible = true;
OutputBar.SetFocus();
OutputBar.writeln(“——–“);
OutputBar.write(wExec.StdOut.ReadAll());
OutputBar.write(wExec.StdErr.ReadAll());