0

我想在 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 测试2

ETC...

我不想使用

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

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

提前致谢!

4

1 回答 1

1

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

$ou.Path -replace '^OU=([^,]+).+$','$1'
于 2013-05-23T07:01:57.267 回答