3

В окне 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

... но я не знаю, как сделать это автоматически выбрать по умолчанию через некоторое время.

1 ответ1

1

Я не думаю, что есть вариант, если вы не найдете какое-то 3-е приложение CLI, которое может это сделать.

Как насчет VBS? это будет гораздо проще сделать ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .