Да, если вы хотите перейти к: start или: что-либо в случае отсутствия ввода, решение
напишите следующее:
эта первая строка является ключом
set num=""
set /P num=%input%
if %num%==1 goto Choice1
if %num%==2 goto Choice2
if "%num%"=="" goto Start
goto Start
Эта последняя строка предназначена для входов за пределы вашего диапазона выбора
(в этом примере 3 будет недопустимым и перейдет к началу снова
Хотя есть лучшее и более простое решение!
Это просто "более профессиональное" решение для меню с множественным выбором, и оно ДЕЙСТВИТЕЛЬНО полезно ...
Вместо установки% input% и всего остального, просто используйте выбор! Если вы введете значение вне диапазона (123 означает, что вы можете выбрать 1, 2 или 3), будет «гудок», означающий недопустимый ввод.
set errorlevel=
CHOICE /C 123 >nul
if %errorlevel%==1 goto Choice1
if %errorlevel%==2 goto Choice2
if %errorlevel%==3 goto Choice3
И это все! Намного проще, правда? Просто чтобы объяснить, что означают эти строки ...
Первая строка просто устанавливает уровень ошибки пустым, потому что, когда вы продвинетесь дальше, уровню ошибки может быть неожиданно присвоено значение. Так что избавь себя от головной боли позже и сотри ее.
> nul «скрывает» тот факт, что это выбор. Просто поместите эхо-сообщение над ним, чтобы сказать «Нажмите номер X для Варианта X». Я люблю это, потому что вам не нужно нажимать ввод потом - экономия времени, если у вас есть много вариантов
Теперь, уровень ошибки не назначил ваш вход ... так что будьте осторожны!
Мой выбор может быть «CHOICE / C 3689> nul», но выход уровня ошибки по-прежнему равен errorlevel = 1 для ввода 3, errorlevel = 2 для ввода 6 и т. Д.
Так что, если у вас есть возможность вернуться в главное меню, нажав 0, и CHOICE / C 0123, при нажатии ноль будет уровень ошибки = 1, при нажатии 1 будет уровень ошибки = 2 ... и т. Д.
Выбор супер полезен, просто зайдите и наберите выбор /? для более подробной информации.