我有一个值如下的数组-$VolErrChk[0]
具有:
VOLUME #2
I:
\Device\HarddiskVolume8
\\?\Volume{3559b156-d159-11e4-80c1-0050569cf1fd}
5117 MB.
0x000000304f65e304.
\\.\Volume{3559b156-d159-11e4-80c1-0050569cf1fd}
> **** WARNING: DATA NOT AVAILABLE [0x00000100] ****
$VolErrChk[1]
具有: VOLUME #4
B:
\Device\HarddiskVolume20
\\?\Volume{3bf4ee0a-d050-11e4-80be-0050569cf1fd}
81917 MB.
0x000000304f65e304.
UNKNOWN.
> **** WARNING: DATA NOT AVAILABLE [0x00000100] ****
我在做如下-
foreach ($disk in $VolErrChk)
{
$disk = ($VolErrChk-split "`n" | where {$_ -like "*?\Volume{*"})
"type=ERROR;disk=$disk;"
}
我可以从2个数组值获取此输出-
type=ERROR;disk=\\?\Volume{3559b156-d159-11e4-80c1-0050569cf1fd}
type=ERROR;disk=\\?\Volume{3bf4ee0a-d050-11e4-80be-0050569cf1fd}
最佳答案
您不必拆分字符串,只需使用regex捕获卷即可:
foreach ($disk in $VolErrChk)
{
$disk = [regex]::Match($disk, '([\\]{2}\?\\Volume{[^}]+})').Groups[0].Value
"type=ERROR;disk=$disk;"
}
关于powershell - 从每个数组值打印卷名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39996543/