листинг 3.1). Другими словами, <package>
является контейнером для элементов <job>
.
Если же в WS-файле определено только одно задание, то элемент <package>
можно не использовать.
Элемент
Элементы <job>
позволяют определять несколько заданий (независимо выполняющихся частей) в одном WS-файле. Иначе говоря, между тегами <job>
и </job>
будет находиться отдельный сценарий (который, в свою очередь, может состоять из нескольких частей, написанных, возможно, на разных языках).
У элемента <job>
имеется единственный атрибут id
, который определяет уникальное имя задания. Например, в сценарии two_jobs.wsf определяются два задания с именами 'Task1
' и 'Task2
' (листинг 3.2).
<package>
<job id='Task1'>
<!-- Описываем первое задание (id='Task1') -->
<script language='VBScript'>
WScript.Echo 'Выполняется первое задание (VBScript)'
</script>
</job>
<job id='Task2'>
<!-- Описываем второе задание (id='Task1') -->
<script language='JScript'>
WScript.Echo 'Выполняется второе задание (JScript)'
</script>
</job>
</package>
Для того чтобы запустить конкретное задание из многозадачного WS-файла, нужно воспользоваться параметром //job:'JobID'
в командной строке WSH. Например, следующая команда:
cscript //job:'Task1' two_jobs.wsf
запускает с помощью cscript.exe задание с именем 'Task1' из файла two_jobs.wsf.
Если параметр //job
не указан, то по умолчанию из многозадачного WS-файла запускается первое задание.
Если в WS-файле имеется несколько заданий, то они должны находиться внутри элемента <package>
. Элемент <job>
является одним из двух обязательных элементов в сценариях WSH с разметкой XML.
Элемент
При запуске почти всех стандартных команд или утилит командной строки Windows с ключом /?
на экран выводится встроенная справка, в которой кратко описываются назначение и синтаксис этой команды или утилиты (рис. 3.1).

Рис. 3.1. Встроенная справка для команды COPY
Хорошим тоном считается создание такой справки и для разрабатываемых сценариев WSH. Понятно, что добавление в сценарий функции вывода информации о назначении, синтаксисе и аргументах этого сценария потребовало бы написания довольно большого количества кода: необходимо следить за ключом /?
в командной строке, а при добавлении нового параметра командной строки возникнет необходимость изменения функции, отвечающей за вывод информации на экран.
Элемент <runtime>
позволяет сделать сценарий самодокументируемым, т.е. в этом случае при задании в командной строке ключа /?
на экран будет автоматически выводиться информация об использовании сценария, о его синтаксисе и аргументах (именных и безымянных), а также пример запуска сценария с конкретными значениями аргументов.
При этом сам элемент <runtime>
является лишь контейнером, а содержимое для вывода информации хранится в элементах <named>
(описание именных параметров командной строки), <unnamed>
(описание безымянных параметров командной строки), <description>
(описание самого сценария) и <example>
(пример запуска сценария), которые находятся внутри <runtime>
.
Элемент <runtime>
является дочерним относительно <job>
, поэтому все описания, приведенные внутри <runtime>
, относятся только к текущему заданию.
Элемент
С помощью элементов <named>
можно описывать (документировать) именные параметры командной строки сценария. В табл. 3.1 приведено описание аргументов элемента <named>
.
<named>
Аргумент | Описание |
---|---|
name | Задает имя параметра командной строки |
helpstring | Строка, содержащая описание параметра командной строки |