我想使用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 这样的命令时,我收到一条空信息。我尝试了上述命令的许多变体,但似乎都没有。
有线索的人吗?
答案 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。