Команда CHOICE
Команда CHOICE используется для организации диалога с пользователем при выполнении командного файла и анализа введенных им данных. В различных версиях Windows может присутствовать в стандартной поставке или входить в состав дополнительных инструментов поддержки. При выполнении команды, на экран консоли выводится заданное сообщение и ожидается один из вариантов ответа пользователя . Формат командной строки CHOICE:
CHOICE [/C список] [/N] [/CS] [/T тайм-аут /D элемент] [/M текст]
Параметры командной строки CHOICE:
/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
Предлагает пользователю выбрать один элемент из списка односимвольных вариантов в пакетной программе, а затем возвращает индекс выбранного варианта. Prompts the user to select one item from a list of single-character choices in a batch program, and then returns the index of the selected choice. При использовании без параметров choice отображает значения по умолчанию Y и N. If used without parameters, choice displays the default choices Y and N.
Синтаксис Syntax
Параметры Parameters
Параметр Parameter | Описание Description |
---|---|
ключей /c | Указывает список создаваемых элементов. Specifies the list of choices to be created. Допустимые варианты: a – z, A – Z, 0-9 и расширенные символы ASCII (128-254). Valid choices include a-z, A-Z, 0-9, and extended ASCII characters (128-254). Список по умолчанию — YN, который отображается как [Y,N]? . The default list is YN, which is displayed as [Y,N]? . |
/n /n | Скрывает список вариантов, хотя варианты по-прежнему включены и текст сообщения (если оно указано параметром /m) по-прежнему отображается. Hides the list of choices, although the choices are still enabled and the message text (if specified by /m) is still displayed. |
/кс /cs | Указывает, что параметры учитывают регистр. Specifies that the choices are case-sensitive. По умолчанию варианты не учитывают регистр. By default, the choices are not case-sensitive. |
/t /t | Указывает количество секунд для приостановки перед использованием значения по умолчанию, заданного параметром /d. Specifies the number of seconds to pause before using the default choice specified by /d. Допустимые значения: от 0 до 9999. Acceptable values are from 0 to 9999. Если параметру /t присвоено значение 0, то Выбор не будет приостановлен, прежде чем возвращать значение по умолчанию. If /t is set to 0, choice does not pause before returning the default choice. |
/d /d | Указывает выбор по умолчанию для использования после ожидания числа секунд, заданного параметром /t. Specifies the default choice to use after waiting the number of seconds specified by /t. Значение по умолчанию должно быть в списке вариантов, заданных параметром /c. The default choice must be in the list of choices specified by /c. |
/m |
Комментарии Remarks
Переменной среды ERRORLEVEL присваивается индекс ключа, который пользователь выбирает из списка вариантов. The ERRORLEVEL environment variable is set to the index of the key that the user selects from the list of choices. Первый вариант в списке возвращает значение 1 , второе значение 2 и т. д. The first choice in the list returns a value of 1 , the second a value of 2 , and so on. Если пользователь нажимает клавишу, которая является недопустимым, выбирает звук предупреждения. If the user presses a key that is not a valid choice, choice sounds a warning beep.
Если choice обнаруживает ошибку, она возвращает значение ERRORLEVEL , равное 255 . If choice detects an error condition, it returns an ERRORLEVEL value of 255 . Если пользователь нажимает клавиши CTRL + BREAK или CTRL + C, choice возвращает значение ERRORLEVEL , равное 0 . If the user presses CTRL+BREAK or CTRL+C, choice returns an ERRORLEVEL value of 0 .
При использовании значений ERRORLEVEL в пакетной программе их необходимо перечислить в порядке убывания. When you use ERRORLEVEL values in a batch program, you must list them in decreasing order.
Примеры Examples
Чтобы предоставить варианты Y, N и C, введите следующую строку в пакетном файле: To present the choices Y, N, and C, type the following line in a batch file:
Если пакетный файл выполняет команду choice , появляется следующее сообщение: The following prompt appears when the batch file runs the choice command:
Чтобы скрыть варианты Y, N и C, но отобразить текст Да, нет или продолжить, введите следующую строку в пакетном файле: To hide the choices Y, N, and C, but display the text Yes, No, or Continue, type the following line in a batch file:
Если вы используете параметр /n , но не используете /m, пользователь не будет получать запрос при ожидании ввода. If you use the /n parameter, but do not use /m, the user is not prompted when choice is waiting for input.
Чтобы отобразить как текст, так и параметры, используемые в предыдущих примерах, введите следующую строку в пакетный файл: To show both the text and the options used in the previous examples, type the following line in a batch file:
Чтобы установить ограничение времени, равное пяти секундам, и указать N в качестве значения по умолчанию, введите в пакетном файле следующую строку: To set a time limit of five seconds and specify N as the default value, type the following line in a batch file:
В этом примере, если пользователь не нажимает клавишу в течение пяти секунд, choice выбирает N по умолчанию и возвращает значение ошибки 2 . In this example, if the user doesn’t press a key within five seconds, choice selects N by default and returns an error value of 2 . В противном случае choice возвращает значение, соответствующее выбору пользователя. Otherwise, choice returns the value corresponding to the user’s choice.
Использование команды Choice в Windows 7
Как работает команда Choice
Команда Choice позволяет сделать командные файлы интерактивными. Чтобы понять, как она работает, рассмотрим базовый вариант команды:
Если ввести эту команду в окне командной строки и нажать [Enter], появится следующее сообщение:
Как видите, текст, указанный после параметра /m, превращается в сообщение. Выбор [Y,N]? команда Choice добавляет автоматически, и это варианты по умолчанию. Если нажать [Y], команда возвращает значение 1, если [N] – значение 2. Значение задается с помощью переменной среды Errorlevel.
Теперь, когда вы понимаете базовый принцип, давайте рассмотрим более полноценный пример.
Choice /M «Хотите ли вы продолжить?»
If Errorlevel 2 Goto No
If Errorlevel 1 Goto Yes
Goto End
:No
Echo Вы выбрали Нет
Goto End
:Yes
Echo Вы выбрали Да
:End
В этом примере я использовал конструкцию If Errorlevel, чтобы определить значение переменной среды, конструкцию Goto, чтобы задать направление выполнения командного файла по указанному пути и команду Echo, чтобы вывести сообщение о результатах. Обратите внимание: при использовании конструкции If Errorlevel в командной программе числа следует располагать по убывающей.
Выше приведен пример базовой команды Choice. С использованием дополнительных параметров можно создавать более сложные команды. Ниже приводится официальное описание параметров команды Choice от Microsoft:
Пример реального использования
Теперь, когда вы представляете, как работает команда Choice, давайте рассмотрим пример реальной ситуации, в которой эта команда может облегчить использование командного файла.
Диагностика и разрешение проблем, связанных с TCP/IP, в сети Windows может оказаться нелегкой задачей. Сделать ее проще позволяет команда IP Configuration (IPConfig), которая предоставляет подробные сведения о сетевых настройках Windows. Эти данные можно использовать для проверки сетевых соединений и настроек, что в сочетании с другими инструментами помогает диагностировать и устранять неполадки, связанные с TCP/IP, в сети Windows.
К сожалению, команда IPConfig имеет массу параметров, причем некоторые из них очень длинные, так что их нелегко запомнить и правильно ввести. Чтобы упростить задачу, я создал командный файл, показанный на рис. A (если хотите, можете его скачать ). Странные символы я скопировал из таблицы символов: они создают симпатичную рамку, как показано на рис. B.
Чтобы запустить файл, откройте окно командной строки в нужной папке и введите IPC. Появится аккуратное меню, показанное на рис. B. С помощью команды Choice можно легко выбрать и запустить нужный вариант IPConfig с распространенными параметрами. Достаточно просто ввести определенную цифру, и команда запустится автоматически.
prompt
Changes the Cmd.exe command prompt, including displaying any text you want, such as the name of the current directory, the time and date, or the Microsoft Windows version number. If used without parameters, this command resets the command prompt to the default setting, which is the current drive letter and directory followed by the greater than symbol (>).
Syntax
Parameters
Remarks
The character combinations you can include instead of, or in addition to, one or more character strings in the text parameter:
Character | Description |
---|---|
$q | = (Equal sign) |
$$ | $ (Dollar sign) |
$t | Current time |
$d | Current date |
$p | Current drive and path |
$v | Windows version number |
$n | Current drive |
$g | > (Greater than sign) |
$l | | (Pipe symbol) |
$_ | ENTER-LINEFEED |
$e | ANSI escape code (code 27) |
$h | Backspace (to delete a character that has been written to the command line) |
$a | & (Ampersand) |
$c | ( (Left parenthesis) |
$f | ) (Right parenthesis) |
$s | Space |
When command extensions are enabled the prompt command supports the following formatting characters:
Character | Description |
---|---|
$+ | Zero or more plus sign (+) characters, depending on the depth of the pushd directory stack (one character for each level pushed). |
$m | The remote name associated with the current drive letter or the empty string if current drive is not a network drive. |
If you include the $p character in the text parameter, your disk is read after you enter each command (to determine the current drive and path). This can take extra time, especially for floppy disk drives.
Examples
To set a two-line command prompt with the current time and date on the first line and the greater than sign on the next line, type:
The prompt is changed as follows, where the date and time are current:
To set the command prompt to display as an arrow ( —> ), type:
To manually change the command prompt to the default setting (the current drive and path followed by the greater than sign), type: