Элементы позволяют определять несколько заданий (независимо выполняющихся частей) в одном WS-файле. Иначе говоря, между тегами и будет находиться отдельный сценарий (который, в свою очередь, может состоять из нескольких частей, написанных, возможно, на разных языках).
У элемента имеется единственный атрибут id
, который определяет уникальное имя задания. Например, в сценарии two_jobs.wsf определяются два задания с именами " Task1
" и " Task2
" (листинг 3.2).
Листинг 3.2. Файл two_jobs.wsf
WScript.Echo "Выполняется первое задание (VBScript)"
WScript.Echo "Выполняется второе задание (JScript)"
Для того чтобы запустить конкретное задание из многозадачного WS-файла, нужно воспользоваться параметром //job:"JobID"
в командной строке WSH. Например, следующая команда:
cscript //job:"Task1" two_jobs.wsf
запускает с помощью cscript.exe задание с именем "Task1" из файла two_jobs.wsf.
Замечание
Если параметр //job
не указан, то по умолчанию из многозадачного WS-файла запускается первое задание.
Если в WS-файле имеется несколько заданий, то они должны находиться внутри элемента . Элемент является одним из двух обязательных элементов в сценариях WSH с разметкой XML.
При запуске почти всех стандартных команд или утилит командной строки Windows с ключом /?
на экран выводится встроенная справка, в которой кратко описываются назначение и синтаксис этой команды или утилиты (рис. 3.1).
Рис. 3.1.Встроенная справка для команды COPY
Хорошим тоном считается создание такой справки и для разрабатываемых сценариев WSH. Понятно, что добавление в сценарий функции вывода информации о назначении, синтаксисе и аргументах этого сценария потребовало бы написания довольно большого количества кода: необходимо следить за ключом /?
в командной строке, а при добавлении нового параметра командной строки возникнет необходимость изменения функции, отвечающей за вывод информации на экран.
Элемент позволяет сделать сценарий самодокументируемым, т.е. в этом случае при задании в командной строке ключа /?
на экран будет автоматически выводиться информация об использовании сценария, о его синтаксисе и аргументах (именных и безымянных), а также пример запуска сценария с конкретными значениями аргументов.
При этом сам элемент является лишь контейнером, а содержимое для вывода информации хранится в элементах (описание именных параметров командной строки), (описание безымянных параметров командной строки), (описание самого сценария) и (пример запуска сценария), которые находятся внутри .
Замечание
Элемент является дочерним относительно , поэтому все описания, приведенные внутри , относятся только к текущему заданию.
С помощью элементов можно описывать (документировать) именные параметры командной строки сценария. В табл. 3.1 приведено описание аргументов элемента .
Таблица 3.1.Аргументы элемента
Аргумент |
Описание |
name |
Задает имя параметра командной строки |
helpstring |
Строка, содержащая описание параметра командной строки |
type |
Определяет тип параметра командной строки. Может принимать значения " string " (символьный тип), " boolean " (логический тип), " simple " (в сценарий передается только имя параметра без дополнительного значения). По умолчанию используется тип " simple " |
required |
Используется для того, чтобы показать, является ли параметр командной строки обязательным. Может принимать значения " true " (параметр нужно указывать обязательно) и " false " (параметр можно не указывать) |
Информация, которая указывается для объявляемого в элементе параметра командной строки, используется только для самодокументируемости сценария и никак не влияет на реальные значения, которые будут указаны в командной строке при запуске сценария. Например, если параметр объявлен как обязательный ( required="true"
), но в действительности не был указан при запуске сценария, то никакой ошибки во время работы не произойдет.
Если для аргумента командной строки сценария указан тип " string
", то предполагается, что этот аргумент имеет имя и значение, разделенные символом " :
", например:
Читать дальше