2013-02-28 70 views
5

我想從javascript執行一個java程序並且想要得到輸出。想隱藏使用WshShell.Exec方法的命令提示符窗口

Intailly我試着用下面的代碼:

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c java -classpath . HelloWorld "; 
var cmdRun = WshShell.Run(launch,0,true); 

貫穿方法我不能夠獲取類的輸出。

然後我試着用下面的代碼:

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c p java classpath . HelloWorld "; 
var cmdRun = WshShell.Exec(launch); 
while (cmdRun.Status == 0) // wait for the command to finish 
{ 
sleep(100); 
} 
var output = cmdRun.StdOut.ReadAll(); 
alert(output); 

現在我能夠得到的可變輸出的輸出。

我的問題是使用運行方法,我可以隱藏commandprompt(通過傳遞參數WshShell.Run(launch,0,true)) 其中通過使用Exec方法,我無法隱藏commandprompt。我想隱藏這個命令提示符。

您能否在這方面幫助我? 謝謝

回答

9

是的,這困擾所有wsh腳本。沒有辦法隱藏wshExec對象,只有.Run允許這個選項,但在這種情況下沒有StdOut。很快,唯一的方法就是將輸出重定向到文件。

WshShell = new ActiveXObject("WScript.Shell"); 
var launch ="cmd.exe /c java -classpath . HelloWorld > output.txt"; 
var cmdRun = WshShell.Run(launch,0,true); 
+0

感謝Panayot爲您的構想我也認爲! – user2118354 2013-02-28 10:05:52

+0

呃,我只是忘了說歡迎來到StackOverflow ;-)順便說一句,那麼你會得到有效的回答標記爲已接受,這將在這種情況下向雙方,我和你抽取點數,但這也會有助於休息的論壇讀者知道這個問題的答案;-) – 2013-02-28 11:02:39

+0

謝謝Panayot!我按你的建議做了。 – user2118354 2013-02-28 12:43:01