用Powershell过滤两个通配符之间的XML输出



我想为最终用户从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:testoptions.xml
foreach( $ou in $optionsfile.Options.Domains.Domain )
{
    $ou.Path
}

现在我想只显示XML文件的第一个"="和第一个","之间的文本. 因此输出将是:

Test1Test2

等等……

我不想使用

$ou.Path | select-string -pattern "Test1"

但是要过滤两个通配符之间的文本。

提前感谢!

您可以使用正则表达式提取它。它从字符串的开头查找'OU=',然后将所有不是逗号的内容放在捕获组($1)中,然后用捕获的文本替换整个字符串。

$ou.Path -replace '^OU=([^,]+).+$','$1'

最新更新