В окне cmd я хочу предложить пользователю набор вариантов (обозначенных буквами), один из которых по умолчанию.
Пользователь может ввести букву или нажать Enter
, в этом случае будет выбран вариант по умолчанию.
Я также хочу указать время ожидания, поэтому выбор по умолчанию выбирается автоматически через заданное количество секунд бездействия.
Встроенная команда choice
подходит близко:
> choice /C YN /T 5 /D Y /M "The message"
Для этого требуются только действительные варианты ( /C YN
) и автоматически устанавливается значение «Y» ( /D Y
) через 5 секунд ( /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
... но я не знаю, как сделать это автоматически выбрать по умолчанию через некоторое время.