Windows Batch - 带有超时的默认选择

Windows Batch - 带有超时的默认选择

在 cmd 窗口中,我想提示用户输入一组选项(用字母表示),其中一个是默认选项。用户可以输入字母或点击Enter,在这种情况下将选择默认选项。

我还想指定一个超时时间,这样在给定秒数的不活动时间后就会自动选择默认选项。

内置choice命令接近:

> choice /C YN /T 5 /D Y /M "The message"

这只需要有效的选择( )并且在 5 秒后/C YN自动默认为“Y”() ...但奇怪的是它不允许点击默认选择。/D Y/T 5
Enter

我发现另一个更详细的选项允许按“Enter”键作为默认选择:

:ch
set sel=Y

REM Hitting Enter does not modify 'sel'
set /p sel=The message, [Y/N]?

if %sel% == Y goto Yes
if %sel% == N goto No

echo Invalid choice '%sel%', try again.
goto ch

...但我不知道如何让这个在一段时间后自动选择默认值。

答案1

我认为没有选择,除非你找到可以做到这一点的第三方 CLI 应用程序。

VBS 怎么样?这样做会容易得多……

相关内容