我想从2个通配符(=和,)之间的最终用户过滤XML文件中的文本。
XML文件:
<OPTIONS Product="Testing" Version="1.1">
<Domains>
<Domain Name="domain.local">
<Path>OU=Test1,OU=Users,OU=HQ,DC=domain,DC=local</Path>
</Domain>
<Domain Name="domain.local">
<Path>OU=Test2,OU=Users,OU=HQ,DC=domain,DC=local</Path>
</Domain>
</OPTIONS>
到目前为止我的Powershell代码:
[xml]$optionsfile = Get-Content C:\test\options.xml
foreach( $ou in $optionsfile.Options.Domains.Domain )
{
$ou.Path
}
现在我只想显示XML文件的第一个“=”和第一个“,”之间的文字 。所以输出将是:
测试1 TEST2
等...
我不想使用
$ou.Path | select-string -pattern "Test1"
但是在2个通配符之间过滤文本。
提前致谢!
答案 0 :(得分:1)
您可以使用正则表达式提取它。它从字符串的开头查找“OU =”,然后将所有不是逗号的内容放入捕获组($ 1),然后用捕获的文本替换整个字符串。
$ou.Path -replace '^OU=([^,]+).+$','$1'