在 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 怎么样?这样做会容易得多……