//Получаем значение символьного аргумента /Имя
s+='Имя: '+objNamedArgs('Имя')+'
';
//Проверяем, существует ли аргумент /Компьютер:
if (objNamedArgs.Exists('Компьютер'))
//Получаем значение символьного аргумента /Компьютер
s+='Машина: '+objNamedArgs('Компьютер')+'
';
//Проверяем, существует ли аргумент /Новый
if (objNamedArgs.Exists('Новый'))
//Получаем с помощью условного оператора значение
//логического аргумента /Новый
s+='Новый пользователь: '+(objNamedArgs('Новый') ? 'Да' : 'Нет');
//Выводим полученные строки на экран
WScript.Echo(s);
</script>
</job>
Элемент
С помощью элементов <unnamed>
можно описывать (документировать) безымянные параметры командной строки сценария. В табл. 3.2 приведено описание аргументов элемента <unnamed>
.
<unnamed>
Аргумент | Описание |
---|---|
name | Задает имя, которое будет указано для описываемого параметра командной строки при выводе информации о сценарии |
helpstring | Строка, содержащая описание параметра командной строки |
many | Определяет, сколько раз может быть указан безымянный параметр в командной строке. Значение, равное 'true ' (используется по умолчанию), означает, что безымянный параметр может встретиться в командной строке более одного раза. Значение, равное 'false ', означает, что безымянный параметр должен быть указан только один раз |
required | Определяет, является ли безымянный параметр командной строки обязательным. Может принимать значения 'true ', 'on ' или 1 (параметр нужно указывать обязательно), 'false ', 'off ' или 0 (параметр можно не указывать). Также значением аргумента 'required' может быть целое число, которое показывает, сколько раз безымянный параметр должен обязательно быть указан в командной строке |
Информация, которая указывается для объявляемого в элементе <unnamed>
параметра командной строки, используется, как и в случае элемента <named>
, только для самодокументируемости сценария и никак не влияет на реальные значения, которые будут указаны в командной строке при запуске сценария. Например, если безымянный параметр объявлен как обязательный (required='true'
), но в действительности не был указан при запуске сценария, то никакой ошибки во время работы не произойдет.
Рассмотрим в качестве примера сценарий unnamed.wsf, в который в качестве параметров командной строки должны передаваться расширения файлов, причем обязательно должны быть указаны хотя бы два таких расширения (листинг 3.4).
Для создания информации об использовании этого сценария создается элемент <unnamed>
следующего вида:
<unnamed name='Расш' helpstring='Расширения файлов' many='true' required=2/>
После запуска с помощью wscript.exe в сценарии unnamed.wsf сначала вызывается метод WScript.Arguments.Usage
, в результате чего на экран выводится диалоговое окно с информацией о сценарии и параметрах командной строки (рис. 3.4).

Рис. 3.4. Диалоговое окно с информацией о параметрах сценария unnamed.wsf
Затем в сценарии создается коллекция objUnnamedArgs
(объект WshUnnamed
), которая содержит все безымянные аргументы командной строки, реально переданные в сценарий:
objUnnamedArgs=WScript.Arguments.Unnamed; //Создаем объект WshUnnamed
После этого определяется общее число реально переданных в сценарий параметров командной строки (свойство length
) и в цикле while
организуется перебор всех элементов коллекции objUnnamedArgs
.
//Определяем количество безымянных аргументов
s='Передано в сценарий безымянных аргументов: '+objUnnamedArgs.length;
for (i=0; i<=objUnnamedArgs.length-1; i++)
//Формируем строки со значениями безымянных аргументов
s+='
'+objUnnamedArgs(i);
//Выводим полученные строки на экран
WScript.Echo(s);
Если запустить сценарий unnamed.wsf следующим образом:
wscript.exe unnamed.wsf vbs js
то на экран будет выведено диалоговое окно, показанное на рис. 3.5.

Рис. 3.5. Значения безымянных аргументов командной строки, переданных в unnamed.wsf