首页 > 解决方案 > 在 PowerShell 中输出 XML 数据的干净解决方案

问题描述

我有一个 XML 文件,其中包含 PowerShell 脚本的各种选项,我正在寻找一种干净且简单的方法来在脚本执行开始时输出它们。我不想使用特殊的模块。

XML 基本上如下所示:

[xml]$Xml = @"
<?xml version="1.0" encoding="utf-8"?>
<Parent>
  <Option1>Value</Option1>
  <Option2>True</Option2>
  <NestedOption>
    <NestedOption1>Value</NestedOption1>
    <NestedOption2>Value</NestedOption2>
  </NestedOption>
  <Option3>Value</Option3>
</Parent>
"@

$Xml.Parent

如您所见,也有包含数据的嵌套节点。(1 级)我环顾四周,但没有找到在 PowerShell 中输出它的好方法。
也许有内置功能或有人已经创建了解决方案?
当然,输出不应该以某种方式静态定义。

最佳输出看起来有点像下面“Get-WindowsFeature”的输出:

的输出

谢谢

标签: powershell

解决方案


尝试Format-Table使用属性表达式的 cmdlet:

$Xml.Parent | Format-Table -Property @(
    @{ Label = 'Option 1';        Expression = 'Option1' }
    @{ Label = 'Option 2';        Expression = 'Option2' }
    @{ Label = 'Nested Option 1'; Expression = { $_.NestedOption.NestedOption1 } }
    @{ Label = 'Nested Option 2'; Expression = { $_.NestedOption.NestedOption2 } }
    @{ Label = 'Option 3';        Expression = 'Option3' }
)

推荐阅读