我是PowerShell的新手,我想弄清楚如何在PowerShell中遍历JSON对象并提取值。
我在WIMS.JSON文件中有一个JSON对象
{ WIMS:{
A:{drive:"A"},
B:{drive:"Z"}
}}
我想遍历WIMS中的对象,即A和B,并在循环中选择不同的驱动器号。
我已经能够弄清楚如何使用以下方法获取对象名称(可能很难看)
$json = (Get-Content "WIMS.json" -Raw) | ConvertFrom-Json
$WIMS = $json.WIMS
$wimNames=$($WIMS| Get-Member -MemberType *Property).Name
for ($i=0; $i -lt $wimNames.count; $i++) {
write-host ("Property names are: " + $wimNames[$i])
$object=$WIMS| select $wimNames[$i] #does not work
$object.drive #does not work
}
但是我无法弄清楚如何提取对象,以便可以访问字段。
任何指针将不胜感激。
您正在朝正确的方向前进。Select-Object
与-Expand
参数一起使用应该可以为您提供所需的信息。
$wimNames | ForEach-Object {
$object = $WIMS | Select-Object -Expand $_
$object.drive
}
或者
$wimNames | ForEach-Object { $WIMS | Select-Object -Expand $_ | ForEach-Object { $_.drive } }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句