我必须迭代一个多维哈希表,如:
$ou=@{
class = @{
value1 = @{
1= ""
}
value2 = ""
value3 = ""
}
}
我只需要一种方法来访问哈希表的每个键(values1,value2,...)。 我已经尝试过foreach和for循环,但没有成功。 起初我使用foreach循环来迭代第一个哈希表:
foreach ($key in $a.keys){
write-host $key.keys
}
但我很难添加第二个循环。我是否必须再次重复密钥?为什么$ key.keys会给我所有的钥匙而不是一个接一个?
答案 0 :(得分:2)
此
function keys ($h) { foreach ($k in $h.keys) { $k ; keys $h[$k] }}
将通过所有密钥递归。请注意,它会对哈希表元素的值进行递归,而不是键。因此,在您的评论示例中,您可能希望在第二级循环中迭代$a[$key].key
而不是$key.keys
。