我正在创建一个PowerShell GUI脚本,通过将当前配置导出到.xml来迁移服务器配置,然后将其应用到另一台计算机。
如果我选择具有Export-Clixml
等特殊字符的文件夹,我发现cmdlet ][ sss ]! ' @ # $% (<
无效。
此问题也出现在cmdlet Test-Path
中,但我发现.net方法在测试此类路径时没有此错误[System.IO.Directory]::Exists($DestinationPath + '\ServerConfig.xml')
我的问题是¿如何使用.net?
导出和导入.xml答案 0 :(得分:1)
我强烈建议您a)避免在路径中放置特殊字符,并且b)升级到至少PowerShell v3,这样您就可以使用Export-Clixml -LiteralPath
(和Test-Path -LiteralPath
)。
如果出于某些不可能的原因,您可以尝试
$xml = $data | ConvertTo-Xml
$xml.Save('C:\path\to\output.xml')
但是,ConvertTo-Xml
和Export-Clixml
不使用相同的架构,因此您还必须调整导入例程。