这里有点 PowerShell 新手,所以请善待。我正在创建一个 PS 脚本,它可以帮助我记录我的环境。我要做的是获取对象所有属性的名称,并使用属性名称和相应的值填充 XML 文档。例如:
PS C:\> $stuff = Get-SomeStuff
PS C:\> $stuff
Name: foo
Version: 1.0
输出 XML 如下所示:
<rootNode>
<stuff>
<Name>foo</Name>
<Version>1.0</Version>
</stuff>
</rootNode>
本质上,我想在检索对象属性时使用 $stuff 属性名称来替换属性。本质上,我需要用提取的名称动态替换属性名称。我的代码如下所示:
$stuff = Get-SomeStuff
CreateXML $rootnode,"stuff",$stuff
Function CreateXML ($rootNode, $nodeName, $category){
$subRootNode = $xml.CreateElement($nodeName)
$catProps = $stuff | Get-Member -MemberType Property | Select -ExpandProperty Name
foreach ($prop in $catProps){
$newNode = $xml.CreateElement($prop)
$newNode.Text = $category.{$prop} #--- THIS IS THE LINE CAUSING PROBLEMS
$subRootNode.AppendChild($newNode)
}
$rootNode.AppendChild($subRootNode)
}
非常感谢任何帮助,因为我必须跨多个节点捕获数千个属性。