我正在制作一个使用PowerShell发布Web应用程序的脚本。
由于我处于开发阶段,我会交替编辑脚本和xml文件。现在,脚本非常小而简单:
$settings = [xml](Get-Content c:\PublishData.xml)
$whereToProjectsAreLocally = $settings.publishing.globals.localprojectdir
但我确实有问题。一旦我启动脚本并检查一切是否按计划运行,我发现编辑xml文件(通过Notepad ++)是不可能的。我收到一条错误消息,指出保存失败,我应该检查该文件是否被其他应用程序使用。
除了Notepad ++和Powershell ISE之外,没有其他应用程序没有使用该文件。
关闭ISE并不能解决问题(每次启动脚本时关闭ISE也不是我梦寐以求的解决方案)。
关闭Notepad ++也无法解决问题(尽管最新版本会记住更改,即使我不保存它们,但这也不是解决方案。)
我想在背景中有一些像我没有关闭的XmlReader。我的问题是:如何在读取xml文件中的内容后将其关闭?
编辑:如果xml没有存储在C:\但是在较低的目录中,则相同的脚本可以正常工作。如何在根目录C:\?
中使其工作答案 0 :(得分:1)
试试这个:
$xmlFile = 'c:\PublishData.xml'
$rawXML = Get-Content $xmlFile -Raw
$settings = [XML]$rawXML
编辑:只是想,这可能是另一种选择:
$settings = [xml]([System.IO.File]::ReadAllLines($xmlFile))