cmd命令行取虚拟光驱数及盘符无法回显问题
cmd命令行取虚拟光驱数及盘符无法回显问题,可以输出但取不到盘符及映像路径#include <Constants.au3>
#include <Array.au3>
;Local $p = Run(@ComSpec & ' /c ping 6san.com','',@SW_HIDE, 15)
Local $p = Run(@ComSpec & ' /c ' & @SystemDir & "\ImDisk.exe -l",'',@SW_HIDE, 15)
Dim $i
Local $line
ProcessWaitClose($p)
$line =StringMid(StdoutRead($p), 15, 1)
MsgBox(0,"111:",$line)
For $i = 0 To $line Step 1
Local $foo = Run(@ComSpec & ' /c ' & @SystemDir & "\ImDisk.exe -l -u "&$i,'',@SW_HIDE, 16)
Local$sDat
$dv =StringMid(StdoutRead($foo), 14, 10)
$sDat1 = StdoutRead($foo) ;获取数据流
;If @error Then ExitLoop
$sDat = $sDat1
_ArrayDisplay($sDat)
MsgBox(0,$i&"STDOUT read:",$dv) Run(@ComSpec & ' /c ' & @SystemDir & "\ImDisk.exe -l",'',@SW_HIDE, 2)
你 StdoutRead 只需要$STDOUT_CHILD afan 发表于 2020-6-7 11:58
Run(@ComSpec & ' /c ' & @SystemDir & "\ImDisk.exe -l",'',@SW_HIDE, 2)
你 StdoutRead 只需要$STDOUT_C ...
感谢你的回复,找到原因了是缺少了,ProcessWaitClose($foo) afan 发表于 2020-6-7 11:58
Run(@ComSpec & ' /c ' & @SystemDir & "\ImDisk.exe -l",'',@SW_HIDE, 2)
你 StdoutRead 只需要$STDOUT_C ...
请问下a版,下面的文本怎么正则提取?我需要的是盘符,映像路径,还有映像的大小?
Drive letter: K
Image file: \??\G:\恒信2013贺岁版系统.iso
Size: 3353440256 bytes (3.123 GB), ReadOnly, Removable, Queued I/O Image File, CD-ROM.
Drive letter: L
Image file: \??\G:\莲花U盘维护系统 V2016.12.04.iso
Size: 2072610816 bytes (1.93 GB), ReadOnly, Removable, Queued I/O Image File, CD-ROM.
Drive letter: M
Image file: \??\D:\Backup\我的文档\百度云\恒信系统\jiaSP3-2013.iso
Size: 1164619776 bytes (1.085 GB), ReadOnly, Removable, Queued I/O Image File, CD-ROM.
Highlight code by AuREHelper
(?mi)^Drive.+(\w)[\s\S]+?(\\\V+)[\s\S]+?(\d+)
afan 发表于 2020-6-7 13:15
谢谢a版,我试下,谢谢
afan 发表于 2020-6-7 13:15
a版,测试了一下,盘符正确,映像路径取出是这样的,\??\G:\恒信2013贺岁版系统.iso;映像大小取的是这个位置Size: (3353440256)这个需要转换,如果能直接取3.123 GB就不需要转换了!再次表示感谢 lizhongbo 发表于 2020-6-7 16:16
a版,测试了一下,盘符正确,映像路径取出是这样的,\??\G:\恒信2013贺岁版系统.iso;映像大小取的是这个 ...
Highlight code by AuREHelper
(?mi)^Drive.+(\w)[\s\S]+?(\w:\\\V+)[\s\S]+?\((.+?)\)
afan 发表于 2020-6-7 16:21
a版,其他的都正确,就是映像大小还不是取那个括号里面的数值
lizhongbo 发表于 2020-6-7 16:41
a版,其他的都正确,就是映像大小还不是取那个括号里面的数值
你为什么就不直说你要取到什么字符?
K
G:\恒信2013贺岁版系统.iso
3.123 GB
L
G:\莲花U盘维护系统 V2016.12.04.iso
1.93 GB
M
D:\Backup\我的文档\百度云\恒信系统\jiaSP3-2013.iso
1.085 GB
afan 发表于 2020-6-7 16:43
你为什么就不直说你要取到什么字符?
K
G:\恒信2013贺岁版系统.iso
3.123 GB lizhongbo 发表于 2020-6-7 16:44
3.123 GB
你看我上面取到了什么 afan 发表于 2020-6-7 16:43
你为什么就不直说你要取到什么字符?
K
G:\恒信2013贺岁版系统.iso
不好意思a版是我这里弄错了
MsgBox(0, 0, $aArray)
MsgBox(0, 0, $aArray)
MsgBox(0, 0, $aArray/1073741824)
页:
[1]