powershell - 检查相同的哈希表值

标签 powershell hashtable

如何遍历哈希表以验证所有值是否相同?

我有一个脚本可以从事件目录查询中返回一个哈希表。从每个服务器返回的值应该相同,所以如果所有值都相同,我想返回 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/

相关文章:

c - 哈希表泄漏内存

Emacs:gethash 在哈希表中看不到键

Azure Devops Agent没有创建服务端点的权限(如何分配权限)

powershell - 如何在 Ubuntu 18.04 上将 Powershell Core 更新到最新版本

azure - AzCosmosDBSqlContainer : "Object reference not set to an instance of an object."

java - 将 null 值保存为多个键,其中 null 具有单一含义

Powershell 输出到 csv 文件

powershell - 如何在不破坏主脚本的情况下用Ctrl + C停止子进程并将子输出流传输到PowerShell中的主脚本?

ruby - 为什么我的哈希值变为 false

hashtable - 哈希表的意义何在?