我已经搜索过,但显然我的 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)
}
}