Обработка параметров командной строки

Обработка параметров командной строки

Самый простой вариант организовать диалог с пользователем состоит в использовании параметров командной строки. Напомним, что объектная модель WSH предоставляет несколько методов, которые позволяют производить анализ именных и безымянных параметров (см. разд. "Работа с параметрами командной строки сценария" главы 2), с которыми был запущен сценарий, а в схеме WS XML есть несколько специальных элементов (<runtime>, <named>, <unnamed>, <description> и <example>), предназначенных для быстрого создания встроенной справки, описывающей синтаксис сценария и смысл каждого из параметров.

Для нашего примера мы создадим сценарий ArgMenu.wsf, в котором будем анализировать аргументы командной строки и в зависимости от них запускать то или иное задание из файла PhoneBook.wsf. Названия и назначения именных параметров, которые мы будем использовать, приведены в табл. 7.1.

Таблица 7.1. Параметры командной строки сценария для работы с записной книжкой

Название параметра Назначение
/L Просмотр всех записей книжки (сортировка по фамилии)
/F Поиск записей по фамилии, которая вводится в диалоговом окне
Добавление записи по фамилии (данные вводятся в диалоговом окне)
/D Удаление записи (фамилия для удаления вводится в диалоговом окне)

Если запустить сценарий ArgMenu.wsf вообще без параметров, либо с параметрами, не указанными в табл. 7.1, то на экран будет выведена встроенная справка (рис. 7.1).

Рис. 7.1. Встроенная справка для сценария ArgMenu.wsf

В листинге 7.4 приводится полный текст сценария ArgMenu.wsf.

Листинг 7.4. Обработка параметров командной строки сценария для работы с записной книжкой

<job id="ArgMenu">

 <runtime>

  <description>

  Сценарий для работы с телефонной книжкой

  </description>

  <named name="L" helpstring="Просмотр содержимого книжки" type="simple" required="false"/>

  <named name="F" helpstring="Поиск по фамилии" type="simple" required="false"/>

  <named name="A" helpstring="Добавление записи" type="simple" required="false"/>

  <named name="D" helpstring="Удаление записи" type="simple" required="false"/>

 </runtime>

 <script language="JScript">

  var WshShell;

  WshShell=WScript.CreateObject("WScript.Shell");

  if ((WScript.Arguments.Named.Exists("L")) ||

   (WScript.Arguments.Named.Exists("l"))) {

   WshShell.Run("wscript PhoneBook.wsf //Job:SortName");

   WScript.Quit();

  }

  if ((WScript.Arguments.Named.Exists("F")) ||

   (WScript.Arguments.Named.Exists("f"))) {

   WshShell.Run("wscript PhoneBook.wsf //Job:FindName");

   WScript.Quit();

  }

  if ((WScript.Arguments.Named.Exists("A")) ||

   (WScript.Arguments.Named.Exists("a"))) {

   WshShell.Run("wscript PhoneBook.wsf //Job:AddRec");

   WScript.Quit();

  }

  if ((WScript.Arguments.Named.Exists("D")) ||

   (WScript.Arguments.Named.Exists("d"))) {

   WshShell.Run("wscript PhoneBook.wsf //Job:DelRec");

   WScript.Quit();

  }

  //Ни один из нужных аргументов не был указан, выводим

  //описание параметров

  WScript.Arguments.ShowUsage();

 </script>

</job>

Теперь, если понадобится ввести дополнительную функцию при работе с записной книжкой (например, поиск по номеру телефона), нужно будет в файл PhoneBook.wsf добавить задание с новым идентификатором, а в файл ArgMenu.wsf — обработку нового параметра командной строки.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

3.1.6 Параметры командной строки

Из книги C++ автора Хилл Мюррей

3.1.6 Параметры командной строки После того, как программа была написана и оттестирована, я заметил, что часто набирать выражения на клавиатуре в стадартный ввод надоедает, поскольку обычно использование прораммы состоит в вычислении одного выражения. Если бы можно было


Закачка с командной строки

Из книги 200 лучших программ для Linux автора Яремчук Сергей Акимович

Закачка с командной строки Самым популярным инструментом для закачки файлов и целых сайтов является утилита GNU Wget, которая, как правило, устанавливается по умолчанию во многих дистрибутивах Linux. Эта утилита поддерживает все популярные протоколы HTTP/HTTPS и FTP, умеет работать


Компилятор командной строки для C# (csc.exe)

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Компилятор командной строки для C# (csc.exe) Для компиляции исходного кода C# есть целый ряд возможностей. Не касаясь Visual Studio 2005 (и различных IDE сторонних производителей), здесь можно отметить компилятор командной строки для C#, csc.exe (где csc означает аббревиатуру для C-Sharp Compiler -


Отладка с командной строки

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Отладка с командной строки Перед началом отладки приложения с помощью cordbg.exe следует сгенерировать отладочные символы для текущего приложения, указав для csc.exe флаг /debug. Например, чтобы сгенерировать данные отладки для приложения TestApp.exe, введите следующую команду.csc


10.5. Параметры командной строки

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

10.5. Параметры командной строки Unix-традиции поощряют использование ключей командной строки для управления программами, так чтобы параметры можно было задавать из сценариев. Это особенно важно для программ, которые выполняют функции фильтров или каналов. Существует 3


10.5.1. Параметры командной строки от -а до -z

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

10.5.1. Параметры командной строки от -а до -z Со временем часто используемые параметры в широко известных Unix-программах создали неформальный стандарт семантики для ожидаемого значения различных флагов. Ниже приводится перечень параметров и их значений, которые будут


10.5. Параметры командной строки

Из книги Бесплатные разговоры через Интернет автора Фрузоров Сергей

10.5. Параметры командной строки Unix-традиции поощряют использование ключей командной строки для управления программами, так чтобы параметры можно было задавать из сценариев. Это особенно важно для программ, которые выполняют функции фильтров или каналов. Существует 3


10.5.1. Параметры командной строки от -а до -z

Из книги Реестр Windows 7 автора Климов Александр Петрович

10.5.1. Параметры командной строки от -а до -z Со временем часто используемые параметры в широко известных Unix-программах создали неформальный стандарт семантики для ожидаемого значения различных флагов. Ниже приводится перечень параметров и их значений, которые будут


Глава 26 Синтаксический анализ параметров командной строки

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Глава 26 Синтаксический анализ параметров командной строки Многие Linux-программы позволяют задавать параметры командной строки. Эти параметры выполняют самые разнообразные функции, однако имеют практически одинаковую синтаксическую структуру. Короткие параметры


Ключи командной строки

Из книги Linux программирование в примерах автора Роббинс Арнольд

Ключи командной строки Большинству пользователей не нужно работать с интерфейсом командной строки, ключи предназначены для использования системными администраторами. С их помощью можно вручную установить или удалить Radmin, изменить номер порта, а также производить


Утилита командной строки REG.EXE

Из книги C++ для начинающих автора Липпман Стенли

Утилита командной строки REG.EXE Кроме редактора реестра, имеющего графический интерфейс, в составе Windows 7 имеется также утилита командной строки REG.EXE, предназначенная для опытных пользователей. С ее помощью можно создавать различные сценарии для выполнения различных


Переключатели командной строки

Из книги UNIX — универсальная среда программирования автора Пайк Роб

Переключатели командной строки Требуются только начальные символы переключателей. Вы также можете набрать любую часть текста в квадратных скобках, показанного в табл. 37.1, включая полное название режима. Например, задание -n, -no, -noauto имеет одинаковый эффект.Таблица 37.1.


7.8.1. Класс для обработки параметров командной строки

Из книги автора

7.8.1. Класс для обработки параметров командной строки Чтобы не перегружать функцию main() деталями, касающимися обработки параметров командной строки, лучше отделить этот фрагмент. Можно написать для этого функцию. Например:extern int parse_options( int arg_count, char *arg_vector );int main( int argc, char