Помещение следующих строк в конец скрипта PowerShell имеет следующие функциональные возможности:
if($Host.Name -eq "ConsoleHost")
{
Write-Host "Press any key to continue..." -NoNewline
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
}
- Если я запустил сценарий, щелкнув правой кнопкой мыши по нему и выбрав "Запустить с PowerShell", окно консоли останется для меня открытым, пока я не нажму любую клавишу для продолжения.
- Если у меня уже открыто окно PowerShell и я запускаю скрипт из этого окна, то, хотя текст "Нажмите любую клавишу для продолжения" все еще появляется, мне фактически не нужно ничего нажимать, чтобы продолжить; это делает это самостоятельно. Следовательно, я могу сразу же запустить что-то еще.
Мне нравится это поведение, но я бы предпочел ограничить его определенным подмножеством клавиш (или даже просто одной клавишей, такой как клавиша ввода), если это возможно. Использование read-host не работает, тогда мне все равно придется вводить данные даже при запуске из другого окна PowerShell; цель состоит в том, чтобы просто остановить закрытие окна, когда я запускаю его из контекстного меню. Мне не нужно ничего вводить при запуске с уже существующей консоли PowerShell.
По сути, мне нравится функциональность кода, который у меня есть выше, но я хочу ограничить ключи, к которым он применяется.
Можно ли этого добиться? Если так, то как?