Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

элемент <runtime> может содержать один или несколько элементов

<named>
и
<unnamed>
, а также элементы
<description>
и
<example>
.

Обязательными для создания корректного сценария являются только элементы

<job>
и
<script>
. Сам код сценария всегда располагается внутри элемента
<script>
.

Опишем теперь элементы XML, использующиеся в сценариях WSH, более подробно.

Элементы WS-файла

В 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. Понятно, что добавление в сценарий функции вывода информации о назначении, синтаксисе и аргументах этого сценария потребовало бы написания довольно большого количества кода: необходимо следить за ключом

/?
в командной строке, а при добавлении нового параметра командной строки возникнет необходимость изменения функции, отвечающей за вывод информации на экран.

Поделиться с друзьями: