Элемент
Элемент <resource>
позволяет отделить символьные или числовые константы (ресурсы) от остального кода сценария. Например, таким образом удобно собрать в одном месте строки, которые используются в сценарии для вывода каких-либо стандартных сообщений. Если после этого понадобится изменить сообщения в сценарии (например, перевести их на другой язык), то достаточно будет внести соответствующие корректировки в строки, описанные в элементах <resource>
.
Для получения значения ресурса в сценарии нужно вызвать метод getResource
, передав в качестве параметра символьный идентификатор ресурса (значение атрибута id).
В листинге 3.7 представлен пример сценария resource.wsf, в котором определяется ресурсная строка с идентификатором 'MyName
':
<resource id='MyName'> Меня зовут Андрей Попов </resource>
Значение этого ресурса затем выводится на экран с помощью метода Echo
объекта WScript
и метода getResource
:
WScript.Echo(getResource('MyName'));
<job id='Resource'>
<runtime>
<description>
Имя: resource.wsf
Описание: Пример использования в сценарии ресурсных строк
</description>
</runtime>
<resource id='MyName'>
Меня зовут Андрей Попов
</resource>
<script language='JScript'>
//Выводим на экран значение ресурса 'MyName'
WScript.Echo(getResource('MyName'));
</script>
</job>
Элемент
Элемент <object>
предлагает еще один способ создания экземпляра COM- объектов для использования их внутри сценариев. Напомним, что ранее для этого мы использовали методы CreateObject
и GetObject
объекта WScript
, объект ActiveXObject
и функцию GetObject
языка JScript, а также функцию CreateObject
языка VBScript. Элемент <object>
может заменить эти средства.
Атрибут id
в <object>
— это имя, применяемое для обращения к объекту внутри сценария. Отметим, что объект, создаваемый с помощью тега <object>
, будет глобальным по отношению к тому заданию, в котором он определен. Другими словами, этот объект может использоваться во всех элементах <script>
, находящихся внутри элемента <job>
, содержащего описание объекта.
Атрибуты classid
и progid
используются в <object>
соответственно для указания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');
Элемент
При вызове многих методов внешних объектов, которые используются внутри сценариев, требуется указывать различные числовые или строковые константы, определенные в этих внешних объектах. Например, для того, чтобы открыть текстовый файл с помощью метода OpenTextFile
объекта FileSystemObject
, может потребоваться указать параметр, который определяет режим ввода/вывода (возможные значения констант ForReading=1
, ForWriting=2
и ForAppending=8
) открываемого файла. Ясно, что запомнить все значения констант различных объектов очень трудно, поэтому при их использовании приходится постоянно обращаться к справочной информации.
К счастью, большинство объектов предоставляет информацию об именах используемых ими констант в своей библиотеке типов (как уже отмечалось в<reference>
как раз обеспечивает доступ к мнемоническим константам, определенным в библиотеке типов объекта (экземпляр объекта при этом не создается).
Для того чтобы воспользоваться константами определенного объекта, нужно в теге <reference>
указать программный код этого объекта (атрибут object
) илиguid
), а также, при необходимости, номер версии объекта (атрибут version
).
Например, доступ к константам объекта FileSystemObject
организуется следующим образом:
<reference object='Scripting.FileSystemObject'/>
После этого в сценариях можно просто использовать константы с именами ForReading
или ForAppending
, не заботясь об их числовых значениях (соответствующий пример приведен в листинге 3.10).
Элемент
Элемент <script>
с помощью атрибута language
позволяет определить язык сценария (language='JScript'
для языка JScript и language='VBScript'
для языка VBScript). Это делает возможным использовать в одном