2013-07-18 32 views
1

我正在使用以下代碼來執行合併操作。該命令啓動一個子進程(手動合併工具)。但使用此代碼子進程無法打開。 但我得到的錯誤和輸出流從Wscript.Shell中捕獲cmd查詢的輸出運行方法

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="tf merge $/Alpha/Dev $/Alpha/Main /recursive /version:C4264~C4264"; 
var cmdRun = WshShell.Exec(launch); 

但是當我使用下面的代碼,子進程啓動。但操作結束後窗口會關閉。但我無法獲得任何輸出或錯誤流。

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="tf merge $/Alpha/Dev $/Alpha/Main /recursive /version:C4264~C4264"; 
var cmdRun = WshShell.run(launch,1,1); 

我怎樣才能得到命令行查詢的輸出,而仍然使用的run()方法?????

回答

1
var WshShell = new ActiveXObject("WScript.Shell"); 
var WshExec = WshShell.Exec("nslookup"); 
var InStream = WshExec.StdIn; 
InStream.writeLine("help"); 
InStream.writeLine("exit"); 
var OutStream = WshExec.StdOut; 
var Str = ""; 
while (!OutStream.atEndOfStream) { 
    Str = Str + OutStream.readAll(); 
} 
WScript.Echo(Str); 
+0

我用'alert(Str)'替換了'WScript.Echo(Str);''Voila! – Anup