使用 ActiveX 获取 Windows CMD 输出
Get Windows CMD output using ActiveX
我想使用 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 这样的命令时,我收到一条空消息。我尝试了上述命令的多种变体,但 none 似乎有效。
有人知道吗?
java -version
returns 它在 StdErr 流中的输出,所以要么:
var ret = ex.StdErr.ReadAll();
或者做:
var ex = w.Exec('cmd /C java -version 2>&1');
2>&1
部分将 StdErr 流 (2
) 重定向到 StdOut (1
).有关详细信息,请参阅 this。
我想使用 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 这样的命令时,我收到一条空消息。我尝试了上述命令的多种变体,但 none 似乎有效。
有人知道吗?
java -version
returns 它在 StdErr 流中的输出,所以要么:
var ret = ex.StdErr.ReadAll();
或者做:
var ex = w.Exec('cmd /C java -version 2>&1');
2>&1
部分将 StdErr 流 (2
) 重定向到 StdOut (1
).有关详细信息,请参阅 this。