各位高手:
本人知道StdoutRead能够读取命令行的窗口信息,以前用的也正常,可以读取DISM的窗口信息,当时的代码如下:#RequireAdmin
Global Const $dism=IniRead($INI,"Path","dism","")
Global $info,$line,$lineplus
$info=Run($Root & "" & $dism & "\dism.exe /get-imageinfo /imagefile:." & $wim,$Root & "" & $CDTarget & "\sources",@SW_HIDE,15)
$line=""
Do
$lineplus=StdoutRead($info)
If $lineplus="" Then
ContinueLoop
EndIf
$line &= $lineplus
Until @error=1
StdioClose($info)
Msgbox(0,"",$line)
当时用以上代码可以很顺利的读取DISM的窗口信息。
但是,最近想用StdoutRead读取diskpart的窗口信息,但不成功,末尾Msgbox语句总是显示一个随机数字,有时4位,有时5位。下面是我的diskpart代码:#RequireAdmin
#include<Constants.au3>
Global $info,$line,$lineplus
$info=Run(@ComSpec & " /c diskpart.exe list volume", "C:\windows\system32", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
;StdinWrite($info,"list volume")
;StdinWrite($info)
$line=""
Do
$lineplus=StdoutRead($info)
If $lineplus="" Then
ContinueLoop
EndIf
$line &= $lineplus
Until @error=1
StdioClose($info)
MsgBox(0,"",$info)
特别说明,本人知道diskpart有脚本模式,但还要生成单独的txt文件。所以我还是希望用StdoutRead读取diskpart的窗口信息,这样不用生成单独的txt文件。请问各位高手,代码应该如何写,特别是Run(@ComSpec & " /c diskpart.exe list volume", "C:\windows\system32", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)语句这一行,应该如何表达,多谢! |