如何解决PowerShell对象属性递归 输出
该函数被分配了一个未知对象。不知道对象具有多少个属性和/或子对象。 然后,该函数递归地遍历对象,直到知道对象的所有属性为止。
然后,PowerShell应该将其输出为JSON文件。但没有添加字符({} [],)。
我很确定ConvertTo-Json cmdlet具有这样的功能,但是我自己不能编写脚本/使用它。
请使用cmdlet“格式列表”或类似格式来格式化整个内容,而不要使用制表符或空格手动进行格式化。
这是一个小例子: 示例对象:
$Car = [PSCustomObject] @{
Tire = [PSCustomObject] @{
Color = "Black"
Count = 4
}
Doors = [PSCustomObject]@{
Color = "Blue"
Diameter = 21
}
}
{
"Tire": {
"Color": "Black","Count": 4
},"Doors": {
"Color": "Blue","Diameter": 21
}
}
必需的输出:
Tire:
Color: Black
Count: 4
Doors:
Color: Blue
Diameter: 21
输出应保存在字符串变量中。
我已经研究了好几天,但是什么也找不到。
非常感谢您。
解决方法
您在上面寻找的输出似乎是(至少接近)YAML语法。您可以使用“ powershell-yaml”模块以所需的形式输出。
确保已安装“ powershell-yaml”模块(Install-Module powershell-yaml
),然后尝试执行以下操作:
命令
$Car = [PSCustomObject] @{
Tire = [PSCustomObject] @{
Color = "Black"
Count = 4
}
Doors = [PSCustomObject]@{
Color = "Blue"
Diameter = 21
}
}
ConvertTo-Yaml $car
输出
Tire:
Color: Black
Count: 4
Doors:
Color: Blue
Diameter: 21
输出与您要查找的输出相同,ConvertTo-Yaml
应该适用于所有PSObject。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。