2010-04-25 39 views

回答

0

首先,你需要创建一个shell对象:

var shell = WScript.CreateObject("WScript.Shell"); 

然后有两种方法可供选择。最简单的方式使用Shell运行功能和发送命令输出到一个文件,该文件随后读取:

var errorCode = shell.Run("cmd /c dir c:\\ > tmp.txt", 1, true); 
    // (1 -> Display window, true -> wait for command to finish) 

可替代地,也能够捕捉到该命令输出直接使用Shell Exec的功能:

var cmdRun = shell.Exec("cmd /c dir c:\\"); 
while (cmdRun.Status == 0) // wait for the command to finish 
{ 
    WScript.Sleep(100); 
} 

Exec返回表示进程的对象,在这种情况下,我们将标准输出作为TextStream对象进行访问。

var output = cmdRun.StdOut.ReadAll(); 

你可能认为你可以使用返回的对象和它的标准I/O管道新的流程交互,但似乎并不在我的经验工作。例如,我找不到一种方法来读取在命令执行完成之前不会阻止脚本的标准输出。