如何使用PowerShell 7.2将指定单行输出转换为多行格式?
PowerShell 7.2 自定义输出格式实现方案
可以通过直接遍历对象属性并自定义输出格式的方式实现你要的效果,以下是具体代码:
foreach ($prop in $result.PSObject.Properties) { # 输出主属性名,左对齐占15字符 "{0,-15} : " -f $prop.Name # 判断属性值是否为非空嵌套对象 if ($prop.Value -is [psobject] -and $prop.Value.PSObject.Properties.Count -gt 0) { # 遍历嵌套属性,跳过不需要的id字段 foreach ($nestedProp in $prop.Value.PSObject.Properties | Where-Object Name -ne 'id') { # 格式化嵌套属性,左对齐属性名并对齐等号 "{0,-15} = {1}" -f $nestedProp.Name, $nestedProp.Value } } # 添加空行分隔不同属性块 "" }
代码说明:
- 利用
PSObject.Properties获取对象的所有属性,兼容任意嵌套结构的对象 "{0,-15}"是格式化字符串,实现文本左对齐并固定宽度,和你要的示例格式对齐一致- 通过
Where-Object Name -ne 'id'过滤掉不需要显示的id字段 - 针对
connectedDevice这类值为空的属性,只会输出属性名和冒号,符合你的要求
内容的提问来源于stack exchange,提问作者Daniel Murray
相关产品推荐
相关产品推荐

