wscript.exe unnamed.wsf vbs js
то на экран будет выведено диалоговое окно, показанное на рис. 3.5.
Рис. 3.5. Значения безымянных аргументов командной строки, переданных в unnamed.wsf
Имя: unnamed.wsf
Кодировка: Windows
var objUnnamedArgs,s;
//Вызываем метод ShowUsage для вывода на экран описания сценария
WScript.Arguments.ShowUsage();
objUnnamedArgs=WScript.Arguments.Unnamed; //Создаем объект WshUnnamed
//Определяем количество безымянных аргументов
s="Передано в сценарий безымянных аргументов: "+objUnnamedArgs.length;
for (i=0; i<=objUnnamedArgs.length-1; i++)
//Формируем строки со значениями безымянных аргументов
s+="\n"+objUnnamedArgs(i);
//Выводим полученные строки на экран
WScript.Echo(s);
Элемент
Внутри элемента
помещается текст (без дополнительных кавычек), описывающий назначение сценария. Как и все элементы внутри
, этот текст выводится на экран, если сценарий был запущен с ключом /?
в командной строке или если в сценарии встретился вызов метода ShowUsage
объекта WshArguments
. При выводе текста на экран учитываются все имеющиеся в нем пробелы, символы табуляции и перевода строки.
Пример использования элемента
Рис. 3.6. Вывод текста, описывающего сценарий: а — в графическом режиме; б — в консольном режиме
Имя: descrip.wsf
Кодировка: Windows
Описание: Здесь можно привести дополнительное описание сценария
//Вызываем метод ShowUsage
WScript.Arguments.ShowUsage();
Элемент
Внутри элемента
приводится текст из одной или нескольких строк, в котором можно описать примеры запуска сценария. Если сценарий был запущен с ключом /?
в командной строке или в сценарии встретился вызов метода ShowUsage
объекта WshArguments
, то этот текст выводится в графическое диалоговое окно (при использовании wscript.exe) или на экран (в консольном режиме при использовании cscript.exe). При выводе текста на экран учитываются все имеющиеся в нем пробелы, символы табуляции и перевода строки, при этом строки из элемента
выводятся после строк из элемента
(рис. 3.7).
Рис. 3.7. Диалоговое окно, формируемое элементами
и
Сценарий example.wsf, диалоговое окно с описанием которого показано на рис. 3.7, приведен в листинге 3.6.
Имя: example.wsf
Кодировка: Windows
Описание: Здесь можно привести дополнительное описание сценария
Здесь приводится пример запуска сценария
(с параметрами командной строки, например)
//Вызываем метод ShowUsage
WScript.Arguments.ShowUsage();
Элемент
Элемент
позволяет отделить символьные или числовые константы (ресурсы) от остального кода сценария. Например, таким образом удобно собрать в одном месте строки, которые используются в сценарии для вывода каких-либо стандартных сообщений. Если после этого понадобится изменить сообщения в сценарии (например, перевести их на другой язык), то достаточно будет внести соответствующие корректировки в строки, описанные в элементах
.
Для получения значения ресурса в сценарии нужно вызвать метод getResource
, передав в качестве параметра символьный идентификатор ресурса (значение атрибута id).
В листинге 3.7 представлен пример сценария resource.wsf, в котором определяется ресурсная строка с идентификатором "MyName
":
Значение этого ресурса затем выводится на экран с помощью метода Echo
объекта WScript
и метода getResource
:
WScript.Echo(getResource("MyName"));
Имя: resource.wsf
Описание: Пример использования в сценарии ресурсных строк
Меня зовут Андрей Попов
//Выводим на экран значение ресурса "MyName"
WScript.Echo(getResource("MyName"));
Элемент
Элемент предлагает еще один способ создания экземпляра COM-объектов для использования их внутри сценариев. Напомним, что ранее для этого мы использовали методы
CreateObject
и GetObject
объекта WScript
, объект ActiveXObject
и функцию GetObject
языка JScript, а также функцию CreateObject
языка VBScript. Элемент может заменить эти средства.
Атрибут id
в — это имя, применяемое для обращения к объекту внутри сценария. Отметим, что объект, создаваемый с помощью тега
, будет глобальным по отношению к тому заданию, в котором он определен. Другими словами, этот объект может использоваться во всех элементах
, находящихся внутри элемента
, содержащего описание объекта.
Атрибуты classid
и progid
используются в соответственно для указания
FileSystemObject (GUID="0D43FE01-F093-11CF-8940-00A0C9054228")
можно двумя способами:
или
В обычном js-файле или внутри элемента этот объект мы бы создали следующим образом:
var fso = WScript.CreateObject("Scripting.FileSystemObject");
или
var fso = new ActiveXObject("Scripting.FileSystemObject");
Элемент
При вызове многих методов внешних объектов, которые используются внутри сценариев, требуется указывать различные числовые или строковые константы, определенные в этих внешних объектах. Например, для того, чтобы открыть текстовый файл с помощью метода OpenTextFile
объекта FileSystemObject
, может потребоваться указать параметр, который определяет режим ввода/вывода (возможные значения констант ForReading=1
, ForWriting=2
и ForAppending=8
) открываемого файла. Ясно, что запомнить все значения констант различных объектов очень трудно, поэтому при их использовании приходится постоянно обращаться к справочной информации.
К счастью, большинство объектов предоставляет информацию об именах используемых ими констант в своей библиотеке типов (как уже отмечалось в
как раз обеспечивает доступ к мнемоническим константам, определенным в библиотеке типов объекта (экземпляр объекта при этом не создается).
Для того чтобы воспользоваться константами определенного объекта, нужно в теге
указать программный код этого объекта (атрибут object
) илиguid
), а также, при необходимости, номер версии объекта (атрибут version
).
Например, доступ к константам объекта FileSystemObject
организуется следующим образом:
После этого в сценариях можно просто использовать константы с именами ForReading
или ForAppending
, не заботясь об их числовых значениях (соответствующий пример приведен в листинге 3.10).
Элемент
Элемент с помощью атрибута
language
позволяет определить язык сценария (language="JScript"
для языка JScript и language="VBScript"
для языка VBScript). Это делает возможным использовать в одном задании сценарии, написанные на разных языках, что иногда бывает очень удобно. Предположим, что у вас имеются сценарии на JScript и VBScript, функции которых необходимо объединить. Для этого не нужно переписывать один из сценариев на другой язык — используя WS-файл, можно из сценария JScript спокойно вызывать функции, написанные на VBScript, и наоборот! Пример подобного сценария приведен в листинге 3.12.
Атрибут src
позволяет подключить к выполняющемуся сценарию внешний файл с другим сценарием. Например, задание элемента
приведет к такому же результату, как если бы содержимое файла tools.js было расположено между тегами и
: