Проблема соответствия ключей / значений пары в пауэр-оболочке - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу проверить пару ключ-значение в 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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...