我想使用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/