找回密码
 加入
搜索
查看: 968|回复: 5

[AU3基础] 想用StdoutRead读取diskpart的窗口信息,但不成功,故来求助高手。

[复制链接]
发表于 2022-5-16 20:59:36 | 显示全部楼层 |阅读模式
各位高手:
        本人知道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)语句这一行,应该如何表达,多谢!
发表于 2022-5-16 21:16:10 | 显示全部楼层



#RequireAdmin
Local $iPid = Run(@ComSpec & " /c echo,list volume|diskpart.exe", "C:\windows\system32", @SW_HIDE, 0x8)
ProcessWaitClose($iPid)
Local $sInfo = BinaryToString(StdoutRead($iPid, 1, 1), 1)
MsgBox(0, "", $sInfo)


评分

参与人数 1金钱 +30 收起 理由
afan + 30 赞一个!

查看全部评分

发表于 2022-5-16 23:35:24 | 显示全部楼层

同义九,汝何秀
发表于 2022-5-17 09:12:20 | 显示全部楼层

批处理功底不错....有大厂的感觉
 楼主| 发表于 2022-5-17 12:36:04 | 显示全部楼层

十分感谢zghwelcome,十分欣赏您的批处理功底!
发表于 2022-5-17 22:55:53 | 显示全部楼层
养成好习惯,及时结贴加注已解决。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 16:23 , Processed in 0.091702 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表