Au3读取cmd命令行中的回显信息

au3在cmd中执行命令行程序,常常需要获取cmd命令行窗口显示的信息,如下方法可以读取常见的回显,特殊情况未尝试:

#include <Constants.au3>

Local $p = Run(@ComSpec & ” /c ping 6san.com”,””,@SW_HIDE, 15)
Local $line
ProcessWaitClose($p)
While 1
$line = StdoutRead($p)
If @error Then ExitLoop
MsgBox(0, “STDOUT read:”, $line)
Wend

如上执行ping命令,读取cmd命令中显示的信息。

备注:15=0x1 ($STDIN_CHILD) + 0x2 ($STDOUT_CHILD)+0x4 ($STDERR_CHILD)+ 0x8 ($STDERR_MERGED),详见au3帮助文档run函数的可选标志

au3帮助文档中读取dos回显的示例:

#include <Constants.au3>

Local $foo = Run(@ComSpec & ” /c dir foo.bar”, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0, “STDOUT read:”, $line)
Wend

While 1
$line = StderrRead($foo)
If @error Then ExitLoop
MsgBox(0, “STDERR read:”, $line)
Wend

MsgBox(0, “Debug”, “Exiting…”)

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注