検索しましたが、どうやら私のGoogle fooが弱いようです。私が必要としているのは、コンソールでユーザー入力を求め、一定時間後にリクエストをタイムアウトさせ、入力がない場合はスクリプトの実行を続行する方法です。私が知る限り、Read-Host はこれを提供しません。機能。$host.UI.PromptForChoice() も $host.UI.RawUI.ReadKey() も行いません。ご指摘ありがとうございます。
編集:答えを見つけてくれたLars Truijensに感謝します。彼が指摘したコードを関数にカプセル化しました。私が実装した方法では、ユーザーがキーを押してからスクリプトの実行が続くまでに最大 1 秒の遅延が生じる可能性があることに注意してください。
function Pause-Host
{
param(
$Delay = 1
)
$counter = 0;
While(!$host.UI.RawUI.KeyAvailable -and ($counter++ -lt $Delay))
{
[Threading.Thread]::Sleep(1000)
}
}