我有一个简单的以下脚本,因此我在web.config中添加了一个标题
$webConfigPath = Resolve-Path "MyFolder\Web.Config"
$webConfig = [xml](get-content($webConfigPath))
$targetNode = $webConfig.configuration.'system.webServer'.httpProtocol.customHeaders
$newNode=$webConfig.CreateDocumentFragment()
$newNode.InnerXml= "<remove name='$headerName)'/>"
$targetNode.AppendChild($newNode)
$webConfig.Save($webConfigPath)
但这不会保存更改...如果我打印,路径是正确的
$webConfig.configuration.'system.webServer'.httpProtocol.customHeaders
我在那里得到了实际的节点。我在哪里想念东西?
谢谢!
答案 0 :(得分:0)
您的命令似乎正在尝试保存到起点。看到这里:
$webConfigPath = Resolve-Path "MyFolder\Web.Config" $webConfig.Save($webConfigPath)
换句话说,您的脚本试图将收集到的数据保存到$ webConfigPath变量中的命令中,这就是为什么当您指定其他文件路径时,它可以正确保存的原因。完成此操作的一个简单方法就是更改生成的文件路径。如果您需要将该路径用于脚本中的其他命令,则可以将文件路径放入其自己的变量中:
$savePath = "C:/test.xml"
...允许您使用变量,而不必再次输入路径。
希望这有助于回答您的问题!