/T
- это переключатель timeout для выбора. /D
- это переключатель для определения стандартного уровня ошибки / параметра , чтобы установить, если время истекло.
Пример:
CHOICE /T 5 /N /C 1234 /M "Select Option 1,2,3 or 4" /D 1
Применяется тайм-аут 5 секунд, с уровнем ошибки, установленным в значение 1, равный уровню ошибки 1 в этом случае.
/N
Скрывает строку приглашения выбора по умолчанию. /M
Позволяет определить собственную строку приглашения /C
Позволяет буквенно-цифровым символам определяться как варианты выбора
Примечание:
- Уровень ошибки устанавливается слева направо относительно перечисленных опций.
- После выбора команды Уровень ошибки должен оцениваться от наивысшего к низшему
- ИЛИ
- Используется напрямую; Например, в
Goto :LabelName%errorlevel%
Команде
* Ответ на комментарий *
CHOICE /C 123 /T Timeout 25 /D goto :start /M 1 choice menu 25s
IF %ERRORLEVEL% EQU 1 goto :choice1
В приведенном выше тексте есть несколько ошибок.
/T Timeout 25
должно быть: /T 25
Timeout
неявно присутствует в переключателе /T
и НЕ является частью правильного использования команды выбора.
/D goto :start
должно быть: /D 1
ИЛИ /D 2
ИЛИ /D 3
Следует использовать только определенные /C
параметры, следующие после /D
переключатель
/M 1 choice menu 25s
неверен.
Запрос после /M
должен быть заключен в Двойные кавычки: "[1] Option 1. [2] Option 2. [3] Option 3."
Оценка уровня ошибки должна выполняться в строке после команды CHOICE.
Снова, чтобы быть понятным, Оценка должна быть сделана от самого высокого до самого низкого . Когда уровень ошибки оценивается после выбора, он на самом деле интерпретируется как If ERRORLEVEL GTR n
, несмотря на то, что выполняется сценарий с использованием If ERRORLEVEL n
Пример правильного использования всех выше:
@echo off
:menu
cls
CHOICE /N /T 25 /C 123 /M "[1] Option 1. [2] Option 2. [3] Start." /D 3
IF ERRORLEVEL 3 (
GOTO :start
) else (
GOTO :choice%errorlevel%
)
:start
ECHO( You are at the start
Pause
GOTO :menu
:choice1
ECHO( You are at option 1
Pause
GOTO :menu
:choice2
ECHO( You are at option 2
Pause
GOTO :menu