Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислениях , 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+ BREAKили CTRL+ C. Choice отображает варианты по умолчанию Y и N, если используется без параметров. [12]

Синтаксис [ править ]

DOS [ править ]

CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] ["text"]

Аргументы:

  • /C[:]choicesЗадает допустимые ключи. По умолчанию - «ДА».
  • /T[:]c,nn По умолчанию после «nn» секунд выбирается значение «c».
  • textЗадает строку приглашения для отображения. (Цитаты необязательны).

Флаги:

  • /NУказывает не отображать варианты выбора и "?" в конце строки приглашения.
  • /S Указывает, что ключи выбора должны обрабатываться с учетом регистра.

Microsoft Windows, ReactOS [ править ]

CHOICE [/C [<Choice1><Choice2><…>]] [/N] [/CS] [/T <Timeout> /D <Choice>] [/M <"Text">]

Аргументы:

  • /C[:]choicesЗадает допустимые ключи. По умолчанию - «ДА». (Microsoft Windows ограничивает допустимые ключи выбора значениями z, 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  GOTO  three IF  ERRORLEVEL  2  GOTO  two IF  ERRORLEVEL  1  GOTO  one GOTO  end : one ECHO Вы нажали "1" ! GOTO  end : two ECHO Вы нажали "2" ! GOTO  end : three ECHO Вы нажали "3" ! : конец @ ПАУЗА
Обратите внимание, что в примере используется синтаксис DOS. Этот пример требует небольших корректировок, прежде чем он будет применяться непосредственно к версиям команды для Windows CHOICE.
Обратите внимание, что команда IF при проверке УРОВНЯ ОШИБКИ сравнивает число и сопоставляет, если УРОВЕНЬ ОШИБКИ больше или равно этому числу. Из-за этого IF ERRORLEVEL сравнения должны выполняться в порядке убывания.
Обратите внимание, что если пользователь нажимает Control-C, чтобы выйти из CHOICE, а затем N, программа продолжится. Первый "Goto end" необходим.

См. Также [ править ]

  • Список команд DOS

Ссылки [ править ]

  1. ^ Jamsa, Kris A. (1993), DOS: The Complete Reference , Osborne McGraw-Hill, стр. 206, ISBN 0078819040.
  2. ^ "Команда выбора командной строки MS-DOS и Windows" . www.computerhope.com .
  3. ^ "Справочник командной строки Microsoft Windows XP AZ" .
  4. ^ «Выбор - Принять ввод пользователя - Windows CMD - SS64.com» . ss64.com .
  5. ^ «Сделайте так, чтобы команда Choice работала на вас даже в Windows 7» . TechRepublic .
  6. ^ «Пакетные файлы - Команда ВЫБОР» . www.robvanderwoude.com .
  7. ^ "Руководство пользователя Datalight ROM-DOS" (PDF) . www.datalight.com .
  8. ^ «ibiblio.org FreeDOS Group - FreeDOS Base» . www.ibiblio.org .
  9. ^ "Руководство пользователя PTS-DOS 2000 Pro" (PDF) . Буггинген, Германия: Paragon Technology GmbH . 1999. Архивировано (PDF) из оригинала 12 мая 2018 года . Проверено 12 мая 2018 .
  10. ^ "reactos / reactos" . GitHub .
  11. ^ "ibiblio.org Пакет FreeDOS - выбор (База FreeDOS)" . www.ibiblio.org .
  12. ^ «Статья Microsoft TechNet Choice» .
  13. ^ «Справка и поддержка пакетных файлов» . www.computerhope.com .

Дальнейшее чтение [ править ]

  • Купер, Джим (2001). Специальная версия с использованием MS-DOS 6.22, третье издание . Que Publishing . ISBN 978-0789725738.
  • Станек, Уильям Р. (2008). Карманный консультант администратора командной строки Windows, 2-е издание . Microsoft Press . ISBN 978-0735622623.

Внешние ссылки [ править ]

  • Статья Microsoft TechNet Choice