Я искал, но, видимо, мой Google Foo слаб. Что мне нужно, так это способ запрашивать ввод данных пользователем в консоли и иметь время ожидания запроса через некоторое время и продолжать выполнение сценария, если ввод не поступает. Насколько я могу судить, Read-Host этого не обеспечивает функциональность. Ни $ host.UI.PromptForChoice (), ни $ host.UI.RawUI.ReadKey () не работают. Заранее спасибо за любые указатели.
РЕДАКТИРОВАТЬ: Большое спасибо Lars Truijens за поиск ответа. Я взял код, который он указал, и заключил его в функцию. Обратите внимание, что способ, который я реализовал, означает, что может быть до одной секунды задержки между моментом, когда пользователь нажимает клавишу, и продолжением выполнения скрипта.
function Pause-Host
{
param(
$Delay = 1
)
$counter = 0;
While(!$host.UI.RawUI.KeyAvailable -and ($counter++ -lt $Delay))
{
[Threading.Thread]::Sleep(1000)
}
}