如何使用powerscript提取一个值的第一次出现

时间:2018-06-15 09:05:08

标签: powershell

我有一个xml文件,它很少出现DSCID="cbbfa194-54de-4b81-932f-eaacfc593e12"条目。

我想提取DSCID的第一次出现,即cbbfa194-54de-4b81-932f-eaacfc593e12,并将其分配给变量以供进一步使用。 我无法得到结果。我正在尝试以下语法。

(Select-String -Path "C:\xxx.xml" -Pattern "DSCID=(.*)").Matches.Groups[0]

但结果我得到DSCID之后的所有行。

2 个答案:

答案 0 :(得分:2)

根据您的XML示例,您可以像这样检索您的DSCID:

set

答案 1 :(得分:0)

你的尝试很接近, 但要在双引号之间grep值,您不能在RegEx周围使用双引号

(Select-String -Path ".\xxx.xml" -Pattern 'DSCID="([^"]+)"').Matches.Groups[1].Value
cbbfa194-54de-4b81-932f-eaacfc593e12

要获得所有比赛,您需要一个foreach

Select-String -Path ".\xxx.xml" -Pattern 'DSCID="([^"]+)"'|ForEach-Object {
    $_.Matches.Groups[1].Value
}