В вычислительной технике — choice
это команда , которая позволяет пакетным файлам предлагать пользователю выбрать один элемент из набора односимвольных вариантов. [1] Он доступен в ряде оболочек командной строки операционной системы .
Команда была впервые представлена как внешняя команда (с именами файлов CHOICE.COM или CHOICE.EXE) в MS-DOS 6.0. [2] Он включен в Novell DOS 7 и IBM PC DOS 7.0, а также доступен из оболочки командной строки некоторых версий Microsoft Windows , но не в Windows 2000 и Windows XP . [3] Впервые он был доступен для Windows в составе Windows XP Resource Kit . [4] Он был повторно представлен в Windows Server 2003 и присутствует в более поздних версиях. [5]
Начиная с Windows 2000, SET
команда имеет аналогичную функциональность с использованием /P
аргумента командной строки . Однако эта команда требует дополнительного нажатия клавиши (нажатия клавиши ENTER), которое не требуется для choice
.
Команда choice
портирована на OS/2 , Rexx и Perl . [6] Он также доступен в Datalight ROM-DOS , [7] FreeDOS , [8] PTS-DOS , [9] и ReactOS . [10] Версия FreeDOS была разработана Джимом Холлом и распространяется под лицензией GPL v2 . [11]
Команда возвращает выбранный вариант в виде кода выхода , которому присвоен индекс ключа, который пользователь выбирает из списка вариантов. Первый вариант в списке возвращает значение 1, второй — значение 2 и т. д. Если нажата клавиша, выбор которой не является допустимым, команда прозвучит предупреждающий звуковой сигнал. Если обнаружено состояние ошибки, будет возвращено значение кода выхода 255. Значение кода выхода 0 будет возвращено, если пользователь нажмет CTRL+ или + . Выбор отображает варианты по умолчанию Y и N, если они используются без параметров. [12]BREAKCTRLC
CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] ["text"]
Аргументы:
/C[:]choices
Указывает допустимые ключи. По умолчанию установлено «ДА»./T[:]c,nn
По умолчанию это вариант «c» после «nn» секунд.text
Указывает отображаемую строку приглашения. (Кавычки необязательны).Флаги:
/N
Указывает, что варианты выбора и "?" не отображаются. в конце строки приглашения./S
Указывает, что ключи выбора следует обрабатывать с учетом регистра.CHOICE [/C [<Choice1><Choice2><…>]] [/N] [/CS] [/T <Timeout> /D <Choice>] [/M <"Text">]
Аргументы:
/C[:]choices
Указывает допустимые ключи. По умолчанию установлено «ДА». (Microsoft Windows ограничивает допустимые ключи выбора значениями az, AZ, 0–9 и значениями ASCII от 128 до 254)/T[:]nn
По умолчанию это /D через «nn» секунд. Должно быть указано по умолчанию /D./D[:]c
По умолчанию это вариант «c»./M text
Указывает отображаемую строку приглашения.Флаги:
/N
Указывает, что варианты выбора и "?" не отображаются. в конце строки приглашения./CS
Указывает, что ключи выбора следует обрабатывать с учетом регистра.Приведенный ниже пакетный файл предоставляет пользователю три варианта выбора. [13]
Пользователь направляется в зависимости от введенных им данных путем оценки кода выхода с помощью команды IF ERRORLEVEL
(которая проверяет «больше или равно»). Выбранный вариант затем выводится на экран с помощью этой ECHO
команды.
@ ECHO off @ CHOICE /C:123 IF ERRORLEVEL 3 ПЕРЕЙДИТЕ К трем IF ERRORLEVEL 2 ПЕРЕЙДИТЕ к двум IF ERRORLEVEL 1 ПЕРЕЙДИТЕ к одному ПЕРЕЙДИТЕ конец : одно ECHO Вы нажали "1" !GOTO конец : два ЭХО Вы нажали «2» !GOTO конец : три ЭХО Вы нажали «3» !: конец @ ПАУЗА
CHOICE
команды для Windows.select
в Баше