使用 Powershell,我想将 Outlook 的兼容状态更新为 True
<default>
<application>Excel.exe</application>
<compatible>True</compatible>
<application>Outlook.exe</application>
<compatible>False</compatible>
<application>Word.exe</application>
<compatible>False</compatible>
</default>
这篇文章展示了如果只存在一个“default.application”实例,但是我正在处理的文件在该级别有多个名为 application 的部分,则如何编辑文档。
$doc = [xml](Get-Content ./test.xml)
输出 $doc.default.compatible
为
True
False
False
如何使用 Powershell 将中间值(outlook.exe)修改为 True?
答案1
由于您想在 Outlook 节点之后更改兼容节点,因此我实施了在将值更改为 True 之前使用 PreviousSibling 方法检查它是否为前一个值。
更新的代码:
$docs = [xml](Get-Content ./test.xml)
$doc = $docs.SelectNodes('/default/compatible')
foreach ($d in $doc){
if($d.PreviousSibling.OuterXml -eq "<application>Outlook.exe</application>"){
$d.'#text' = "True"
}
}
$docs.Save($PSScriptRoot + "\test.xml")