如何遍历哈希表以验证所有值是否相同?
我有一个脚本可以从事件目录查询中返回一个哈希表。从每个服务器返回的值应该相同,所以如果所有值都相同,我想返回 true,如果任何值与其他值不匹配,我想返回 false。理想情况下,即使在无需更新脚本的情况下添加了第 4 台或第 5 台服务器,这也能正常工作。
Name Value
---- -----
server1 0
server2 0
server3 0
最佳答案
@($h.Values | Group-Object).Count -eq 1
不是最有效但非常简单的方法。
例子:
# all the same
$h = @{ server1=0; server2=0; server3=0 }
# gets True
@($h.Values | Group-Object).Count -eq 1
# different
$h = @{ server1=0; server2=0; server3=1 }
# gets False
@($h.Values | Group-Object).Count -eq 1
特殊情况是如何处理包含 0 个项目的表。例如。如果都表示相同,则可以在检查中使用 -le 1
。
关于powershell - 检查相同的哈希表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18338592/