Атрибут src позволяет подключить к выполняющемуся сценарию внешний файл с другим сценарием. Например, задание элемента
<script language="JScript" src="tools.js"/>
приведет к такому же результату, как если бы содержимое файла tools.js было расположено между тегами <script> и </script>:
<script language="JScript">
Содержимое файла tools.js
</script>
Таким образом, можно выделить код, который должен использоваться в нескольких сценариях, поместить его в один или несколько внешних файлов, а затем по мере необходимости просто подключать с помощью атрибута 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
Для запуска второго задания, выводящего на экран строку "Второе задание (JScript)", нужно явно указывать идентификатор этого задания, поэтому используется одна из двух команд:
cscript //job:"JS" multijob.wsf
wscript //job:"JS" multijob.wsf
Использование констант внешних объектов
Для того чтобы в сценарии обращаться по имени к константам, определенным во внешних объектах, не создавая экземпляров самих объектов, необходимо сначала получить ссылку на эти объекты с помощью элемента <reference>.
В листинге 3.10 приведен сценарий refer.wsf, в котором с помощью элемента <reference> производится доступ к трем константам объекта FileSystemObject (ForReading, ForWriting и ForAppending), которые определяют режим работы из сценария с внешним текстовым файлом.