【发布时间】:2015-02-02 20:49:01
【问题描述】:
我有一个小脚本来操作一些 XML。这个想法很简单:
- 通过 Get-Content 和 [xml] 加载 XML
- 操作内存中的 XmlDocument
- 保存 XML
脚本的开头是这样的:
$fileName = Resolve-Path (Join-Path $targetDir $xmlFile.FileName)
[xml]$xdoc = Get-Content $fileName
...
$xdoc.Save($fileName);
但是,Save(...) 失败并显示“不支持给定路径的格式”。我添加的一些诊断显示路径如下所示:
Microsoft.PowerShell.Core\FileSystem::\\remoteserver\sharedfolder\test.xml
据我了解,这是路径的 PowerShell 变体...实际上是 PathInfo(或 PathInfo 的 .ToString() 输出)。
当我使用本地路径时,Save(...) 工作正常。它只会中断远程路径。
加载 XML 不是问题,因为我们使用的是本地 PowerShell cmdlet Get-Context,它可以理解 PowerShell 路径。但是当调用 Save(...) 时,我们实际上是在调用 XmlDocument 类的 .NET 方法,它不理解 PowerShell 路径并引发异常。
难道没有简洁、对称、PowerShell的方式来写一个XML文件吗?
【问题讨论】:
标签: xml windows powershell