2012-04-19 29 views
1

Colls、hello。 私のJavascriptを外部.batファイルを実行します。javascriptに外部アプリケーションの実行の終了を待つ方法を教えてください。

var objShell = new ActiveXObject("Shell.Application"); 
     objShell.ShellExecute("start.bat", "Main.bat c:\pr ext.dat ", "C:\\PR\\", "open", "1"); 

START.BATファイルには、5分に動作します。その後、スクリプトは他のコマンドを実行し続けます。 私の質問は、«ファイルSTART.BATの実行終了を待つために(彼が知っている)JavaScriptを依頼するか?»です

naxtコードは、私の場合には非常に適していません。

var date = new Date(); 
var curDate = null; 

do { curDate = new Date(); } 
while(curDate-date < millis); 
+0

wsf-fileから実行していますか? – Teemu

+0

はい、あなたは正しいです。 – May12

答えて

0

あなたの場合「あなたはこれを使用することができ、あなたのMain.batを実行するのに必要な時間についてはよく分から再:

WScript.Sleep(50000); 

WSH言語リファレンス:http://msdn.microsoft.com/en-us/library/98591fh7(v=vs.84).aspx

Sleepメソッド:http://msdn.microsoft.com/en-us/library/6t81adfd(v=vs.84).aspx

+0

はい、それは動作します!しかし、残念ながら私はmain.batがどのくらいの期間動作するのかは分かりません(今日main.batは1分動作し、5分動作するかもしれません)。(何かお薦めして、もう一度手伝ってくれてありがとうでしょうか) – May12

+0

@ May12 main.batが取る最大時間の手がかりがあれば、その時間を遅延として使うことができます(+いくつかの余分なものがあります)。main.batからの戻り値も検出できると思います。必要なものはすべて見つかります:http://msdn.microsoft.com/en-us/library/9bbdkx3k(v=vs.84).aspx – Teemu

+0

Teemuは私が実際に読むのはWshShell.Runメソッドを使うべきです:var WshShell = WScript.CreateObject( "WScript.Shell"); \t \t intReturn = WshShell.Run( "C:\\ PR \\ _ start.bat"& "Main.bat c:\ pr ext.dat" TRUE);でもそれはまだ動作しません=((最後のps(TRUE)は、外部アプリの終了を待つために返される) – May12

関連する問題