В WS-файл можно вставлять комментарии независимо от разметки XML. Сделать это можно двумя способами: с помощью элемента
<!-- -->
или элемента
<comment>
. Например:
<!-- Первый комментарий -->
или
<comment>
Второй комментарий
</comment>
Элементы <?xml?> и <![CDATA[]]>
Эти
элементы являются стандартными для разметки W3C XML 1.0. В сценариях WSH они определяют способ обработки WS-файла. Всего существует два режима обработки сценария: нестрогий (loose) и строгий (strict).
При нестрогой обработке (элемент
<?xml?>
отсутствует) не предполагается выполнение всех требований стандарта XML. Например, не требуется различать строчные и заглавные буквы и заключать значения атрибутов в двойные кавычки. Кроме этого, в процессе нестрогой обработки считается, что все содержимое между тегами
<script>
и
</script>
является исходным кодом сценария. Однако при таком подходе может произойти ошибочная интерпретация вложенных в сценарий зарезервированных для XML символов или слов как разметки XML. Например, имеющиеся в коде сценария знаки "меньше" (<) и "больше" (>) могут привести к прекращению разбора и выполнения сценария.
Для того чтобы задать режим строгой обработки сценария, нужно поместить элемент
<?xml?>
в самой первой строке сценария — никаких других символов или пустых строк перед ним быть не должно. При такой обработке WS-файла нужно четко следовать всем правилам стандарта XML. Код сценария должен быть помещен в секцию
CDATA
, которая начинается с символов "
<![CDATA[
" и заканчивается символами "
]]>
".
Замечание
В WSH 5.6 названия и значения атрибутов в элементе
<?xml?>
должны быть именно такими, как в листинге 3.1 (version="1.0" и standalone="yes").\
Элемент <?job?>
Элемент
<?job?>
задает режим отладки при выполнении WS-файла. Если значение атрибута
debug
равно
true
, то задание может быть выполнено во внешнем отладчике (см. приложение 3). Если же значение атрибута
debug
равно
false
, то отладчик для этого задания применен быть не может. По умолчанию
debug
имеет значение
false
.
Элемент <package>
Этот элемент необходим в тех WS-файлах, в которых с помощью элементов
<job>
определено более одного задания. В этом случае все эти задания должны находиться внутри пары тегов
<package>
и
</package>
(см. листинг 3.1). Другими словами,
<package>
является контейнером для элементов
<job>
.
Если же в WS-файле определено только одно задание, то элемент
<package>
можно не использовать.
Элемент <job>
Элементы
<job>
позволяют определять несколько заданий (независимо выполняющихся частей) в одном WS-файле. Иначе говоря, между тегами
<job>
и
</job>
будет находиться отдельный сценарий (который, в свою очередь, может состоять из нескольких частей, написанных, возможно, на разных языках).
У элемента
<job>
имеется единственный атрибут
id
, который определяет уникальное имя задания. Например, в сценарии two_jobs.wsf определяются два задания с именами "
Task1
" и "
Task2
" (листинг 3.2).
Листинг 3.2. Файл two_jobs.wsf
<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.
Элемент <runtime>
При запуске почти всех стандартных команд или утилит командной строки Windows с ключом
/?
на экран выводится встроенная справка, в которой кратко описываются назначение и синтаксис этой команды или утилиты (рис. 3.1).
Рис. 3.1. Встроенная справка для команды
COPY
Хорошим тоном считается создание такой справки и для разрабатываемых сценариев WSH. Понятно, что добавление в сценарий функции вывода информации о назначении, синтаксисе и аргументах этого сценария потребовало бы написания довольно большого количества кода: необходимо следить за ключом
/?
в командной строке, а при добавлении нового параметра командной строки возникнет необходимость изменения функции, отвечающей за вывод информации на экран.