PowerShell的字符串中的Import-Clixml

roc*_*cku 5 xml powershell serialization

有没有办法Import-Clixml在字符串或XML对象上运行cmdlet?

它需要一个文件路径作为输入来生成PowerShell对象,并且无法从XML对象获取输入.由于存在将PowerShell对象序列化为XML对象的ConvertTo-Xml cmdlet,为什么没有来自XML的转换,这会反过来呢?

我知道System.Xml.Serialization.XmlSerializer可以做到这一点的班级.但是,我想坚持使用cmdlet来做到这一点.

有没有办法用cmdlet(可能只是Import-Clixml)执行此操作,而无需创建临时文件?

Joe*_*oey 1

明显的尝试是只给出变量的路径:

PS Home:\> $xmldata = gci | ConvertTo-Xml
PS Home:\> Import-Clixml Variable:\xmldata
Import-Clixml : Cannot open file because the current provider (Microsoft.PowerShell.Core\Variable) cannot open a file.
At line:1 char:14
+ Import-Clixml <<<<  Variable:\xmldata
    + CategoryInfo          : InvalidArgument: (:) [Import-Clixml], PSInvalidOperationException
    + FullyQualifiedErrorId : ReadWriteFileNotFileSystemProvider,Microsoft.PowerShell.Commands.ImportClixmlCommand
Run Code Online (Sandbox Code Playgroud)

...遗憾的是失败了。所以我认为没有真正的方法可以在没有临时文件的情况下工作。

主要目的ConvertTo-XML是允许在将对象转换为 XML 后在 PowerShell 中进一步处理 XML。那么问题是为什么不能直接对对象进行更改,而不是操作 XML 并将其转换回来?

否则,您仍然可以将临时文件内容包装到函数中。