用Powershell读取后关闭xml文件

时间:2015-02-27 08:35:10

标签: xml powershell file-access

我正在制作一个使用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:\?

中使其工作

1 个答案:

答案 0 :(得分:1)

试试这个:

$xmlFile = 'c:\PublishData.xml'
$rawXML = Get-Content $xmlFile -Raw
$settings = [XML]$rawXML

编辑:只是想,这可能是另一种选择:

$settings = [xml]([System.IO.File]::ReadAllLines($xmlFile))