2012-04-19 3 views
1

안녕하세요. 내 자바 스크립트는 외부 .bat 파일을 실행자바 스크립트에 외부 응용 프로그램 실행이 끝날 때까지 기다리는 방법은 무엇입니까?

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이 파일 실행의 끝을 기다리는 (그에게 알려주세요)?»

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

절전 방법 : http://msdn.microsoft.com/en-us/library/6t81adfd(v=vs.84).aspx

+0

예, 작동합니다! 하지만 unfortunatly 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)는 대기중인 외부 응용 프로그램 종료에 대한 resposible입니다 – May12