задании сценарии, написанные на разных языках, что иногда бывает очень удобно. Предположим, что у вас имеются сценарии на JScript и VBScript, функции которых необходимо объединить. Для этого не нужно переписывать один из сценариев на другой язык — используя WS-файл, можно из сценария JScript спокойно вызывать функции, написанные на VBScript, и наоборот! Пример подобного сценария приведен в листинге 3.12.
Атрибут src
позволяет подключить к выполняющемуся сценарию внешний файл с другим сценарием. Например, задание элемента
<script language='JScript' src='tools.js'/>
приведет к такому же результату, как если бы содержимое файла tools.js было расположено между тегами <script>
и </script>
:
<script language='JScript'>
Таким образом, можно выделить код, который должен использоваться в нескольких сценариях, поместить его в один или несколько внешних файлов, а затем по мере необходимости просто подключать с помощью атрибута src
эти файлы к другим сценариям.
Элемент <script>
является вторым обязательным элементом в сценариях WSH с разметкой XML.
Примеры сценариев с разметкой XML
Приведем примеры сценариев, иллюстрирующие основные свойства WS-файлов.
Строгий режим обработки WS-файла
Напомним, что здесь обязательными являются элементы <?xml?>
и <! [CDATA[]]>
. Соответствующий пример сценария strict.wsf приведен в листинге 3.8.
<?xml version='1.0' standalone='yes' encoding='windows-1251'?>
<job id='JS'>
<runtime>
<description>
Имя: strict.wsf
Кодировка: Windows
Описание: Пример строгого режима обработки WS-файла
</description>
</runtime>
<script language='JScript'>
<![CDATA[
WScript.Echo('Всем привет!');
]]>
</script>
</job>
Несколько заданий в одном файле
Каждое отдельное задание в WS-файле должно находиться внутри элементов <job>
и </job>
. В свою очередь, все элементы <job>
являются дочерними элементами контейнера <package>
.
В качестве примера рассмотрим сценарий multijob.wsf, приведенный в листинге 3.9. Здесь описываются два задания с идентификаторами 'VBS' (сценарий на языке VBScript) и 'JS' (сценарий на языке JScript).
<package>
<job id='VBS'>
<!-- Описываем первое задание (id='VBS') -->
<runtime>
<description>
Имя: multijob.wsf
Кодировка: Windows
Описание: Первое задание из example.wsf
</description>
</runtime>
<script language='VBScript'>
WScript.Echo 'Первое задание (VBScript)'
</script>
</job>
<job id='JS'>
<!-- Описываем второе задание (id='JS') -->
<runtime>
<description>
Имя: example.wsf
Кодировка: Windows
Описание: Второе задание из example.wsf
</description>
</runtime>
<script language='JScript'>
WScript.Echo('Второе задание (JScript)');
</script>
</job>
</package>
Для того чтобы выполнить первое задание сценария multijob.wsf, которое выведет на экран строку 'Первое задание (VBScript)
', нужно выполнить одну из следующих команд:
cscript //job:'VBS' multijob.wsf
cscript multijob.wsf
wscript //job:'VBS' multijob.wsf
wscript multijob.wsf