Код сценария
]]>
Другие задания
Таким образом, из листинга 3.1 видно, что:
□ элемент
может содержать один или несколько элементов
;
□ элемент
может содержать один или несколько элементов
,
, ,
или ;
□ элемент
и
, а также элементы
и
.
Обязательными для создания корректного сценария являются только элементы
и . Сам код сценария всегда располагается внутри элемента
.
Опишем теперь элементы XML, использующиеся в сценариях WSH, более подробно.
Элементы WS-файла
В WS-файл можно вставлять комментарии независимо от разметки XML. Сделать это можно двумя способами: с помощью элемента или элемента
. Например:
или
Второй комментарий
Элементы
Эти элементы являются стандартными для разметки W3C XML 1.0. В сценариях WSH они определяют способ обработки WS-файла. Всего существует два режима обработки сценария: нестрогий (loose) и строгий (strict).
При нестрогой обработке (элемент отсутствует) не предполагается выполнение всех требований стандарта XML. Например, не требуется различать строчные и заглавные буквы и заключать значения атрибутов в двойные кавычки. Кроме этого, в процессе нестрогой обработки считается, что все содержимое между тегами
и
является исходным кодом сценария. Однако при таком подходе может произойти ошибочная интерпретация вложенных в сценарий зарезервированных для XML символов или слов как разметки XML. Например, имеющиеся в коде сценария знаки "меньше" (<) и "больше" (>) могут привести к прекращению разбора и выполнения сценария.
Для того чтобы задать режим строгой обработки сценария, нужно поместить элемент в самой первой строке сценария — никаких других символов или пустых строк перед ним быть не должно. При такой обработке WS-файла нужно четко следовать всем правилам стандарта XML. Код сценария должен быть помещен в секцию
CDATA
, которая начинается с символов "" и заканчивается символами "
]]>
".
В WSH 5.6 названия и значения атрибутов в элементе должны быть именно такими, как в листинге 3.1 (version="1.0" и standalone="yes").\
Элемент
Элемент задает режим отладки при выполнении WS-файла. Если значение атрибута
debug
равно true
, то задание может быть выполнено во внешнем отладчикеdebug
равно false
, то отладчик для этого задания применен быть не может. По умолчанию debug
имеет значение false
.
Элемент
Этот элемент необходим в тех WS-файлах, в которых с помощью элементов
определено более одного задания. В этом случае все эти задания должны находиться внутри пары тегов
и (см. листинг 3.1). Другими словами,
является контейнером для элементов
.
Если же в WS-файле определено только одно задание, то элемент
можно не использовать.
Элемент
Элементы
позволяют определять несколько заданий (независимо выполняющихся частей) в одном WS-файле. Иначе говоря, между тегами
и будет находиться отдельный сценарий (который, в свою очередь, может состоять из нескольких частей, написанных, возможно, на разных языках).
У элемента
имеется единственный атрибут id
, который определяет уникальное имя задания. Например, в сценарии two_jobs.wsf определяются два задания с именами "Task1
" и "Task2
" (листинг 3.2).
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 приведено описание аргументов элемента
.