我正在寻找检查Powershell中的键值对。我尝试了各种方法,但似乎没有一种能像我期望的那样工作。
即使在写出的内容中看到KeyValue对,我仍然在查找True
时得到$checked_group
响应。
if (!($checked_groups[$varDomain] -eq "$varName"))
即使keyValue对在$checked_groups
字典中,上述语句也是True
。你以前见过吗?
我无法使用下面的代码段重新创建问题,即使其逻辑与我的实时代码几乎相同。值的来源不同,因为我正在实时代码中动态收集这些值。然后在一个循环中对其进行迭代,我的$checked_groups = @{ }
不在此循环中,以在所有迭代中维护dict键/对,并且我可以确认它们在每次迭代中都得到保留。
我不知道为什么该语句总是会解析为True
:(
$checked_groups = @{ }
$varDomain = "example.com"
$varName = "Administrator"
if (!($checked_groups[$varDomain] -eq "$varName"))
{
write-host 'Not In There'
}
foreach ($thing in $checked_groups)
{
Write-Host ($thing | Out-String)
}
$checked_groups += @{$varDomain = $varName}
if (($checked_groups[$varDomain] -eq "$varName"))
{
write-host 'In There'
foreach ($thing in $checked_groups)
{
Write-Host ($thing | Out-String)
}
}