Книга: Windows Script Host для Windows 2000/XP

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

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

Самый простой вариант организовать диалог с пользователем состоит в использовании параметров командной строки. Напомним, что объектная модель 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>
 <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 — обработку нового параметра командной строки.

Оглавление книги


Генерация: 1.371. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз