使用ActiveX获取Windows CMD输出

时间:2018-02-07 12:36:35

标签: javascript windows cmd activex activexobject

我想使用ActiveX控件在Windows中获取CMD提示的输出。

当我使用以下代码时:

var w = new ActiveXObject("WScript.Shell");  
var ex =w.Exec('cmd /c dir /b');
var ret = ex.StdOut.ReadAll();
alert(ret);

命令 cmd / c dir / b 工作正常,我在警告信息中获得了一个文件列表。

但是当我使用像 cmd / c java -version 这样的命令时,我收到一条空信息。我尝试了上述命令的许多变体,但似乎都没有。

有线索的人吗?

1 个答案:

答案 0 :(得分:2)

java -version StdErr 流中返回其输出,因此执行以下操作:

var ret = ex.StdErr.ReadAll();

或做:

var ex = w.Exec('cmd /C java -version 2>&1');

2>&1部分将 StdErr 流(2)重定向到 StdOut 1)。有关详细信息,请参阅this