我有一个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
之后的所有行。
答案 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
}