【发布时间】:2018-12-28 22:31:14
【问题描述】:
我正在尝试使用 -replace 或等效的东西来编写一个 powershell 脚本,以根据条件搜索指定的节点,并仅将部分文本替换为其他文本。这甚至可能吗?
这是我尝试根据“路径”的值编辑的一些示例节点:
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::var1].Properties[Value]"
ValueType="String">
<ConfiguredValue>Some Text Here</ConfiguredValue>
</Configuration>
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::var2].Properties[Value]"
ValueType="String">
<ConfiguredValue>More Text Here</ConfiguredValue>
</Configuration>
下面是我当前的代码设置,用于替换整个字符串,但我更喜欢用“内容”替换“文本”,因此节点现在会说“这里有一些内容”。我尝试使用 -replace,但无法使其正常工作。
#defaults
$xml = [xml](Get-Content $file.FullName)
$node = $xml.DTSConfiguration.Configuration
#updating individual attributes
$pathVar = "var1"
$confVal = ""
($xml.DTSConfiguration.Configuration | Where-Object {$_.Path -like ("*{0}*" -f $pathVar)}).ConfiguredValue = ("{0}" -f $confVal)
$xml.Save($file.FullName)
【问题讨论】:
标签: xml powershell