我想使用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这样的命令时,会收到一条空消息。我尝试了上述命令的许多变体,但似乎没有任何作用。

有人知道吗?

最佳答案

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

关于javascript - 使用ActiveX获取Windows CMD输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48664004/

10-11 22:50
查看更多