Недавно я узнал, что Microsoft вернула команду Choice в Windows Vista, добавив к ней несколько дополнительных параметров. Поскольку эта команда может стать незаменимым помощником во многих ситуациях и, учитывая то, что она слишком долго отсутствовала, я решил, что будет полезно снова сделать обзор её возможностей.
Взгляд на Choice
Как я уже говорил, сила Choice состоит в обеспечении согласования командных batch-файлов. Чтобы понять, как она работает, приведу простейший пример:
Choice /M "Do you want to continue"
Если вы введете это в командной строке и нажмете [Enter], то увидите:
Do you want to continue [Y,N]?
Текст, следующий за параметром /M, отображается командой Choise в виде сообщения с подсказкой. Добавленная подсказка [Y,N]? отображает список вариантов по умолчанию. При нажатии клавиши Y, команда вернёт значение 1. При нажатии N - значение 2. Эти значения приписаны переменной среде Errorlevel.
Рассмотрим более сложный пример:
Choice /M "Do you want to continue" If Errorlevel 2 Goto No If Errorlevel 1 Goto Yes Goto End :No Echo You selected No Goto End :Yes Echo You selected Yes :End
Здесь я использовал структуру If Errorlevel для определения значения, приписанного переменной среде, оператор Goto для перехода операции выполнения командного файла к определённой точке и команду Echo для отображения результата выбора. Заметьте, что при использовании структуры If Errorlevel в командной программе номера значений указываются в обратном порядке.
Это самая малая часть возможностей команды Choice. Более сложные и продуманные программы составляются при помощи дополнительных параметров. Вот список с описанием их действия от Microsoft (таблица A):
Задаёт список допустимых вариантов в подсказке. Это могут быть клавиши a-z, A-Z, 0-9, и расширенные символы ASCII (128-254). По умолчанию: "YN".
/N
Скрывает подсказку. Текст перед подсказкой остаётся, заданные варианты остаются доступными.
/CS
Позволяет задавать варианты, чувствительные к реестру. По умолчанию утилита нечувствительна к реестру.
/T timeout
Перед использованием заданной клавиши по умолчанию делает паузу в течении указанного числа секунд. Диапазон допустимых значений: от 0 до 9999. Если указан 0, паузы не будет и произойдёт выбор клавиши по умолчанию.
/D choice
Задаёт значение по умолчанию, которое будет выбрано после nnnn секунд. Символ должен быть указан в списке вариантов после параметра /C, а время появления должно быть указано после параметра /T.
/M text
Задаёт сообщение, которое будет отображено перед подсказкой. Если сообщение не задано, на экран будет выведена только подсказка.
Практический пример
Теперь, имея представление о том, как работает команда Choice, перейдём к практическому примеру использования Choice для упрощенного применения инструмента командной строки при помощи командного файла.
Как известно, решение и диагностика проблем, связанных с TCP/IP в сети Windows порой даётся с большим трудом. Тем не менее, можно облегчить задачу, если использовать команду IP Configuration (IPConfig), созданную для предоставления детального отчёта о конфигурации TCP/IP. Этот отчёт полезен при проверке сетевых подключений и настроек, в сочетании с другими TCP/IP-инструментами он помогает решать ряд проблем, связанных с TCP/IP в сетях Windows.
К сожаленью, команда IPConfig имеет столько параметров (среди которых много весьма длинных), что запомнить их гораздо труднее, чем аккуратно ввести. Для более удобного и простого её использования в Windows Vista я создал командный файл (изображение A). (Командный файл, показанный на изображении A, можно скачать в версии этой статьи для загрузки.)
Изображение A. Файл IPC.bat с командой Choice облегчает работу с длинными названиями параметров команды IPConfig.
После его запуска путём ввода IPC, на экране появится удобное меню (изображение B). При помощи команды Choice можно легко выбирать и запускать наиболее часто используемые параметры IPConfig. Достаточно просто ввести соответствующую цифру.
Изображение B. При появлении меню введите цифру - и команда IPConfig запустится с соответствующим параметром.