Всплывающее окно Powershell с утверждениями if - PullRequest
0 голосов
/ 09 марта 2020

У меня есть строка powershell, которая выглядит следующим образом:

$wshell = New-Object -ComObject Wscript.Shell
    $pause = $wshell.Popup("Stop and verify...", 0, "Wait!", 48+1)
if ($pause -eq 'OK')
    {
        Write-Host 'You clicked OK'
    }
if ($pause = 'Cancel')
{
Exit
}

При его запуске оба ответа приводят к завершению кода без распечатки «вы нажали ОК» или выхода из программы. Сценарий не будет продолжен после точки выбора OK или Отмена. Я не уверен, является ли это значением кнопок или способом их вызова в операторе if.

Любая помощь очень ценится!

1 Ответ

1 голос
/ 10 марта 2020

Есть несколько проблем со скриптом.

1.

if ($pause = 'Cancel')

это недопустимый оператор сравнения. На самом деле это назначение, а не сравнение. Замените = подходящим оператором, например -eq.

основная проблема:

$wshell.Popup возвращает целое значение, соответствующее нажатой кнопке. Вот таблица сопоставления для возвращаемых значений и их кодов:

OK     = 1
Cancel = 2
Abort  = 3
Retry  = 4
Ignore = 5
Yes    = 6
No     = 7

вам необходимо проверять коды кнопок, а не их имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...