Андрей Попов - Windows Script Host для Windows 2000/XP
Атрибут id в <object> — это имя, применяемое для обращения к объекту внутри сценария. Отметим, что объект, создаваемый с помощью тега <object>, будет глобальным по отношению к тому заданию, в котором он определен. Другими словами, этот объект может использоваться во всех элементах <script>, находящихся внутри элемента <job>, содержащего описание объекта.
Атрибуты classid Рё progid используются РІ <object> соответственно для указания глобального РєРѕРґР° создаваемого объекта (GUID, Globally Unique ID) или программного РєРѕРґР° объекта (Programmic Identifier). РР· этих РґРІСѓС… необязательных атрибутов может быть указан только РѕРґРёРЅ. Например, создать объект FileSystemObject (GUID="0D43FE01-F093-11CF-8940-00A0C9054228") можно РґРІСѓРјСЏ способами:
<object id="fso" classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228"/>
или
<object id="fso" progid="Scripting.FileSystemObject"/>
В обычном js-файле или внутри элемента <script> этот объект мы бы создали следующим образом:
var fso = WScript.CreateObject("Scripting.FileSystemObject");
или
var fso = new ActiveXObject("Scripting.FileSystemObject");
Рлемент <reference>
При вызове многих методов внешних объектов, которые используются внутри сценариев, требуется указывать различные числовые или строковые константы, определенные в этих внешних объектах. Например, для того, чтобы открыть текстовый файл с помощью метода OpenTextFile объекта FileSystemObject, может потребоваться указать параметр, который определяет режим ввода/вывода (возможные значения констант ForReading=1, ForWriting=2 и ForAppending=8) открываемого файла. Ясно, что запомнить все значения констант различных объектов очень трудно, поэтому при их использовании приходится постоянно обращаться к справочной информации.
Рљ счастью, большинство объектов предоставляет информацию РѕР± именах используемых РёРјРё констант РІ своей библиотеке типов (как уже отмечалось РІ главе 2, библиотека типов регистрируется РІ системном реестре РїСЂРё установке РЎРћРњ-объекта Рё может существовать как РІ РІРёРґРµ отдельного файла СЃ расширением tlb, так Рё РІ РІРёРґРµ части файла СЃ исполняемым РєРѕРґРѕРј объекта). Рлемент <reference> как раз обеспечивает доступ Рє мнемоническим константам, определенным РІ библиотеке типов объекта (экземпляр объекта РїСЂРё этом РЅРµ создается).
Для того чтобы воспользоваться константами определенного объекта, нужно в теге <reference> указать программный код этого объекта (атрибут object) или глобальный код его библиотеки типов (атрибут guid), а также, при необходимости, номер версии объекта (атрибут version).
Например, доступ к константам объекта FileSystemObject организуется следующим образом:
<reference object="Scripting.FileSystemObject"/>
После этого в сценариях можно просто использовать константы с именами ForReading или ForAppending, не заботясь об их числовых значениях (соответствующий пример приведен в листинге 3.10).
Рлемент <script>
Рлемент <script> СЃ помощью атрибута language позволяет определить язык сценария (language="JScript" для языка JScript Рё language="VBScript" для языка VBScript). Рто делает возможным использовать РІ РѕРґРЅРѕРј задании сценарии, написанные РЅР° разных языках, что РёРЅРѕРіРґР° бывает очень СѓРґРѕР±РЅРѕ. Предположим, что Сѓ вас имеются сценарии РЅР° JScript Рё VBScript, функции которых необходимо объединить. Для этого РЅРµ нужно переписывать РѕРґРёРЅ РёР· сценариев РЅР° РґСЂСѓРіРѕР№ язык — используя WS-файл, можно РёР· сценария JScript СЃРїРѕРєРѕР№РЅРѕ вызывать функции, написанные РЅР° VBScript, Рё наоборот! Пример РїРѕРґРѕР±РЅРѕРіРѕ сценария приведен РІ листинге 3.12.
Атрибут 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.
Листинг 3.8. Файл strict.wsf<?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("Всем привет!");