Я хочу проверить пару ключ-значение в powershell. Я пробовал разные методы, но ни один из них не работает так, как я ожидал.
Я продолжаю получать ответ True
при поиске $checked_group
, хотя я могу видеть пару KeyValue в записи.
if (!($checked_groups[$varDomain] -eq "$varName"))
Даже если пара keyValue есть в словаре $checked_groups
, приведенный выше оператор будет True
. Вы когда-нибудь сталкивались с этим раньше?
Я не могу воссоздать проблему, используя приведенный ниже фрагмент кода, хотя его логика c в значительной степени совпадает с моим живым кодом. Источники значений различны, поскольку я динамически собираю их в живой код. И перебирая их в al oop, мой $checked_groups = @{ }
находится за пределами этого l oop, чтобы поддерживать ключ / пары 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)
}
}