cai11745 发表于 2016-10-18 13:59:24

Run(@ComSpec)如何保留窗口且能够获取返回值

我要在comspec里面执行的参数是访问内网服务器串口,此处用ipconfig代替,由于我要继续对cmd窗口进行操作,所以窗口是不能关闭的。而且要获取返回值,我想通过STDOUT实现。
现在下面这个参数每次执行完会把cmd窗口关闭掉,如果不加$STDOUT_CHILD能够保留cmd窗口,但是没有办法获得回显了,请指教#include <Constants.au3>
$r = Run(@ComSpec& " /k " & 'ipconfig', "", @SW_SHOW, $STDOUT_CHILD)
Local $s
While 1
      $s &=StdoutRead($r)
         If @error Then
                ExitLoop
          EndIf
         Sleep(50)
WEnd
MsgBox(0,0, $s)

Alam 发表于 2016-10-18 18:51:54

可以换个方式输出回显:#include <Constants.au3>
Local $TmpFile = @TempDir & '\ip.txt'
Run(@ComSpec& " /k " & 'ipconfig > ' & $TmpFile, "", @SW_SHOW)
Sleep(300)

MsgBox(0,0, FileRead($TmpFile))
FileDelete($TmpFile)
页: [1]
查看完整版本: Run(@ComSpec)如何保留窗口且能够获取返回值