如何在PowerShell中遍历完整嵌套有序哈希表层级并输出所有成员数据?
PowerShell遍历嵌套有序哈希表的方法
针对嵌套的有序哈希表,有几种方法可以完整遍历并输出所有层级的成员及数据:
方法1:使用ConvertTo-Json展开层级
PowerShell的ConvertTo-Json默认只展开2层嵌套,指定-Depth参数即可覆盖默认值,完整输出所有层级:
$ret3 | ConvertTo-Json -Depth 3
输出示例:
{ "Title": "ABC", "Data": { "Title": "ABC", "Data": { "Title": "ABC", "Data": "FFFFF" } } }
方法2:自定义递归函数遍历
编写递归函数可以灵活控制输出格式,逐个遍历所有嵌套的哈希表成员:
function Get-NestedHash { param( [Parameter(Mandatory)] [hashtable]$Hash, [string]$Prefix = "" ) foreach ($key in $Hash.Keys) { $value = $Hash[$key] if ($value -is [hashtable]) { Write-Host "$Prefix$key :" Get-NestedHash -Hash $value -Prefix "$Prefix " } else { Write-Host "$Prefix$key = $value" } } } # 调用函数遍历$ret3 Get-NestedHash -Hash $ret3
输出示例:
Title = ABC Data : Title = ABC Data : Title = ABC Data = FFFFF
方法3:使用Format-Custom查看结构化内容
Format-Custom可以指定展开深度,输出结构化的嵌套视图:
$ret3 | Format-Custom -Depth 3
输出示例:
class OrderedDictionary { Title = ABC Data = class OrderedDictionary { Title = ABC Data = class OrderedDictionary { Title = ABC Data = FFFFF } } }
内容的提问来源于stack exchange,提问作者deetle
相关产品推荐
相关产品推荐

