Oczekiwanie na wprowadzenie przez użytkownika z limitem czasu
Szukałem, ale najwyraźniej mój google foo jest słaby. Potrzebuję sposobu, aby poprosić użytkownika o dane wejściowe w konsoli i mieć czas oczekiwania po pewnym czasie i kontynuować wykonywanie skryptu, jeśli nie ma wejścia. Tak blisko, jak mogę powiedzieć, Read-Host tego nie zapewnia funkcjonalność. $ Host.UI.PromptForChoice () ani $ host.UI.RawUI.ReadKey (). Z góry dziękuję za wszelkie wskazówki.
EDIT: Bardzo dziękuję Larsowi Truijensowi za znalezienie odpowiedzi. Wziąłem kod, który wskazał, i zamknąłem go w funkcji. Zauważ, że sposób, w jaki go zaimplementowałem, oznacza, że może upłynąć do jednej sekundy opóźnienia między momentem, w którym użytkownik uderza klucz, a kontynuowaniem wykonywania skryptu.
function Pause-Host
{
param(
$Delay = 1
)
$counter = 0;
While(!$host.UI.RawUI.KeyAvailable -and ($counter++ -lt $Delay))
{
[Threading.Thread]::Sleep(1000)
}
}