Читать онлайн книгу «Windows Script Host для Windows 2000/XP».
Замечание
Число элементов в коллекции хранится и в свойстве
Length
объекта WshArguments
. Таким образом, предыдущий пример можно переписать более компактным образом (листинг 1.5).
Листинг 1.5. Вывод всех параметров сценария (методы WSH)
/*******************************************************************/
/* Имя: ShowArgs.js */
/* Язык: JScript */
/* Описание: Вывод на экран параметров запущенного сценария */
/*******************************************************************/
var i, objArgs;
objArgs = WScript.Arguments; //Создаем объект WshArguments
for (i=0; i<=objArgs.Count-1; i++)
WScript.Echo(objArgs(i)); //Выводим на экран i-й аргумент
/************* Конец *********************************************/
С помощью объекта
WshArguments
можно также выделять и отдельно обрабатывать аргументы сценария, у которых имеются имена (например,
/Name:Andrey
) и безымянные аргументы. Ясно, что использование именных параметров более удобно, т. к. в этом случае нет необходимости запоминать, в каком порядке должны быть записаны параметры при запуске того или иного сценария.
Для доступа к именным и безымянным аргументам используются соответственно два специальных свойства объекта
WshArguments
:
Named
и
Unnamed
.
Свойство
Named
содержит ссылку на коллекцию
WshNamed
, свойство
Unnamed
— на коллекцию
WshUnnamed
.
Таким образом, обрабатывать параметры командной строки запущенного сценария можно тремя способами:
просматривать полный набор всех параметров (как именных, так и безымянных) с помощью коллекции
WshArguments
;
выделить только те параметры, у которых есть имена (именные параметры) с помощью коллекции
WshNamed
;
выделить только те параметры, у которых нет имен (безымянные параметры) с помощью коллекции
WshUnnamed
.
У объекта
WshArguments
имеется еще один метод
ShowUsage
. Этот метод служит для вывода на экран информации о запущенном сценарии (описание аргументов командной строки, пример запуска сценария и т.д.). В свою очередь, подобную информацию можно задать только при использовании WSH-сценариев с разметкой XML; более подробно о применении метода
ShowUsage
идет речь в
главе 3 при рассмотрении элементов
<runtime>
,
<description>
,
<example>
,
<named>
и
<unnamed>
.
Объект
WshNamed
содержит коллекцию параметров командной строки запущенного сценария, у которых имеется уникальное имя
(именные параметры). В WSH 5.6 именной параметр всегда начинается с символа "/", после чего приводится имя этого параметра, затем ставится двоеточие ":" и пишется значение параметра, например:
/Name:Andrey
В качестве значения именного параметра рассматривается набор символов, начинающихся после двоеточия и заканчивающихся перед первым встретившимся пробелом. Для того чтобы значением параметра командной строки была строка, состоящая из нескольких слов, необходимо заключить эту строку в кавычки. Например:
/Name:"Andrey Popov"
Создается объект WshNamed с помощью свойства
Named
коллекции
WshArguments
. Для того чтобы получить значение определенного аргумента, его имя используется в качестве индекса коллекции.
Замечание
Узнать число именных параметров можно только с помощью свойства
Length
коллекции WshNamed
; метода Count
у этой коллекции нет. Например, пусть сценарий MyScript.js запущен с двумя именными параметрами:
MyScript.js /User:Andrey /Computer:Server1
Тогда вывести на экран значение параметров Name и Computer можно двумя способами:
var objNamedArgs;
objNamedArgs=WScript.Arguments.Named;
WScript.Echo("Имя пользователя: "+objNamedArgs.Item("User"));
WScript.Echo("Имя компьютера: "+objNamedArgs.Item ("Computer"));
или просто
var objNamedArgs;
objNamedArgs=WScript.Arguments.Named;