Код сценария
]]>
Другие задания
Таким образом, из листинга 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 приведено описание аргументов элемента .