2011-12-21 58 views
1

我可以通过JScript脚本执行程序,以便将执行的程序的输出写入当前控制台吗?将执行过程的输出引导至当前cmd

目前我使用的是Shell.Application.ShellExecute,它为正在执行的应用程序打开另一个新的控制台。

在我的情况下,JScript是一个用ShellExecute执行的编译器的包装。所以会发生的是,所有的编译器错误都会丢失,因为它们被打印在另一个控制台中。

回答

2

如果所有你担心的是捕获你的编译器输出,那么你可以重定向输出到一个文件(我建议stdout和stderr)。事情是这样的:

var shell = new ActiveXObject("WScript.Shell"); 
shell.Exec('YourCommand 1>yourOutput.txt 2>&1 ') 

如果你真的想看到在当前的控制台窗口中ouptut(我不怪你),那么你可以使用这个:

var shell = new ActiveXObject("WScript.Shell"); 
WScript.StdOut.Write(shell.Exec('YourCommand 2>&1').StdOut.ReadAll()); 

注意 - 如果你的命令有可能要求输入,那么你必须在命令字符串中通过管道或重定向提供输入(或者你可以将输入重定向到nul)。否则,程序将挂起。

相关问题