Команда CHOICE

Команда CHOICE используется для организации диалога с пользователем при выполнении командного файла и анализа введенных им данных. В различных версиях Windows может присутствовать в стандартной поставке или входить в состав дополнительных инструментов поддержки. При выполнении команды, на экран консоли выводится заданное сообщение и ожидается один из вариантов ответа пользователя . Формат командной строки CHOICE: CHOICE [/C список] [/N] [/CS] [/T тайм-аут /D элемент] [/M текст]

Параметры:

/C список - Задаваемый список выбираемых элементов (вариантов ответа ). Список по умолчанию - "YN" ( Да или Нет - Yes или No).

/N - Не отображать текстовое сообщение с вариантами ответа .

/CS - Case Sensitive - учитывать регистр символов в данных ввода пользователя. По умолчание в программе регистр символов не учитывается.

/T тайм-аут - Число секунд перед выбором элемента по умолчанию. Допустимыми являются значения от 0 до 9999. Если указан 0, отсутствует пауза перед выбором элемента по умолчанию.

/D элемент - Элемент, выбираемый по умолчанию, когда нет ответа пользователя через nnnn секунд. Символ должен присутствовать в наборе элементов в параметре /C; значение nnnn задается в параметре /T.

/M текст - Сообщение, отображаемое перед приглашением. Если не указано, программа выводит только приглашение.

/? - Вывод справки по использованию.


В CHOICE используется формирование значения кода возврата ERRORLEVEL, который зависит от того, какую клавишу нажал пользователь. Первый элемент в списке возвращает значение 1, второй - 2 и т.д. Если пользователь нажимает клавишу, не соответствующую допустимому выбору, подается звуковой сигнал. Если обнаруживается ошибка, возвращается значение ERRORLEVEL 255. Если нажимаются клавиши CTRL+BREAK или CTRL+C, программа возвращает значение ERRORLEVEL 0.

При обработке значений ERRORLEVEL в пакетном файле их следует перечислять по убыванию.

Примеры:

CHOICE /? - выдать справку по использованию команды
CHOICE /? | MORE - то же самое, но в постраничном режиме вывода справки на экран
CHOICE /T 10 /C ync /CS /D y /M "Сделайте выбор" - CHOICE выдает пользователю текстовое сообщение Сделайте выбор и ожидает выбора одного из заданных вариантов ответа (нажатия клавиш на клавиатуре) - y или n или c . Если ответ равен y - то ERRORLEVEL=1, если n - то ERRORLEVEL=2, если c -ERRORLEVEL=3 . Если пользователь за 10 секунд не нажал ни одной клавиши (/T 10), то выбирается ответ y ( параметр /D y) . При анализе ответа пользователя учитывается регистр символов ( /CS ) .
Если в текстовом сообщении, задаваемом ключом /M , имеются пробелы, то оно должно заключаться в двойные кавычки. Если используется текст на русском языке, то он должен быть в DOS-кодировке.

Команду CHOICE можно использовать в качестве средства организации паузы на определенное время :

CHOICE /T 88 /D Y - ждать ответа пользователя 88 секунд, и если его не будет - принять значение Y .

Данное описание команды CHOICE относится к версии choice.exe, распространяемой в составе дистрибутива Windows 7 . Некоторые параметры CHOICE могут отличаться в различных версиях программы. Так, например, максимальное время ожидания ответа пользователя , задаваемое параметром /T , в ранних реализациях choice.exe или choice.com составляло 99 секунд, а не 9999 , а вместо параметра /CS использовался параметр /S.








Весь список команд CMD Windows