Szukałem, ale najwyraźniej moje google foo jest słabe. 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 wejdzie żadne wejście. Tak blisko, jak mogę powiedzieć, Read-Host nie zapewnia tego funkcjonalność. Ani $ host.UI.PromptForChoice(), ani $ host.UI.RawUI.ReadKey(). Z góry dziękuję za wszelkie wskazówki.Oczekiwanie na podanie przez użytkownika z przekroczeniem limitu czasu
EDYCJA: Dziękuję Larsowi Truijensowi za znalezienie odpowiedzi. Wziąłem kod, który wskazał i umieścił 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 uderzy w klucz, a uruchomieniem skryptu.
function Pause-Host
{
param(
$Delay = 1
)
$counter = 0;
While(!$host.UI.RawUI.KeyAvailable -and ($counter++ -lt $Delay))
{
[Threading.Thread]::Sleep(1000)
}
}
Dziękuję bardzo. Kłaniam się przed waszym potężnym google fu. – EBGreen
W PowerShell 2 znajduje się także polecenie cmdlet 'Start-Sleep'. – Joey