Андрей Попов - Windows Script Host для Windows 2000/XP
Рлемент <runtime> является дочерним относительно <job>, поэтому РІСЃРµ описания, приведенные внутри <runtime>, относятся только Рє текущему заданию.
Рлемент <named>
С помощью элементов <named> можно описывать (документировать) именные параметры командной строки сценария. В табл. 3.1 приведено описание аргументов элемента <named>.
Таблица 3.1. Аргументы элемента <named>
Аргумент Описание name Задает РёРјСЏ параметра командной строки helpstring Строка, содержащая описание параметра командной строки type Определяет тип параметра командной строки. Может принимать значения "string" (символьный тип), "boolean" (логический тип), "simple" (РІ сценарий передается только РёРјСЏ параметра без дополнительного значения). РџРѕ умолчанию используется тип "simple" required Рспользуется для того, чтобы показать, является ли параметр командной строки обязательным. Может принимать значения "true" (параметр нужно указывать обязательно) Рё "false" (параметр можно РЅРµ указывать)Рнформация, которая указывается для объявляемого РІ элементе <named> параметра командной строки, используется только для самодокументируемости сценария Рё никак РЅРµ влияет РЅР° реальные значения, которые Р±СѓРґСѓС‚ указаны РІ командной строке РїСЂРё запуске сценария. Например, если параметр объявлен как обязательный (required="true"), РЅРѕ РІ действительности РЅРµ был указан РїСЂРё запуске сценария, то никакой ошибки РІРѕ время работы РЅРµ произойдет.
Если для аргумента командной строки сценария указан тип "string", то предполагается, что этот аргумент имеет имя и значение, разделенные символом ":", например:
/РРјСЏ:"Андрей РџРѕРїРѕРІ" /Возраст:30
Если в качестве типа параметра командной строки используется "simple", то для этого параметра в командной строке указывается только его имя без значения:
/РРјСЏ /Возраст
Для того чтобы передать в сценарий аргумент командной строки типа "boolean", нужно после имени этого аргумента указать символ "+" (соответствует логическому значению "истина") или "-" (соответствует значению "ложь"). Например:
/Запись+ /ReWrite-
В листинге 3.3 приведен сценарий named.wsf, в котором в блоке <runtime> описываются три именных аргумента командной строки:
в–Ў /РРјСЏ (обязательный аргумент символьного типа);
□ /Компьютер (необязательный аргумент символьного типа);
□  /Новый (обязательный аргумент логического типа).
После запуска с помощью wscript.exe в сценарии named.wsf сначала вызывается метод WScript.Arguments.Usage, в результате чего на экран выводится диалоговое окно с информацией о сценарии и параметрах командной строки (рис. 3.2).
Рис. 3.2. Диалоговое окно с информацией о параметрах сценария named.wsf
Затем в сценарии проверяется, какие именно аргументы командной строки были подставлены при запуске, и выделяются значения этих аргументов. Для этого создается объект WshNamed, являющийся коллекцией именных аргументов командной строки, и используется метод Exists этого объекта:
//Создаем объект WshNamed — коллекция именных аргументов сценария
objNamedArgs= WScript.Arguments.Named;
s="";
//Проверяем, существует ли аргумент /РРјСЏ:
if (objNamedArgs.Exists("РРјСЏ"))
В //Получаем значение символьного аргумента /РРјСЏ
В s+="РРјСЏ: "+objNamedArgs("РРјСЏ") +"n";
//Проверяем, существует ли аргумент /Компьютер:
if (objNamedArgs.Exists("Компьютер"))
 //Получаем значение символьного аргумента /Компьютер
 s+="Машина: "+objNamedArgs("Компьютер") + "n";
Значением параметра /Новый является константа логического типа (true или false), поэтому для формирования строки, соответствующей этому значению, используется условный оператор языка JScript:
//Проверяем, существует ли аргумент /Новый
if (objNamedArgs.Exists("Новый"))
 //Получаем с помощью условного оператора значение
 //логического аргумента /Новый
 s+="Новый пользователь: "+(objNamedArgs("Новый") ? "Да" : "Нет");
Если запустить сценарий named.wsf следующим образом:
wscript.exe named.wsf /РРјСЏ:Popov /Компьютер:404_Popov /Новый+
то на экран будет выведено диалоговое окно, показанное на рис. 3.3.
Рис. 3.3. Значения именных аргументов командной строки, переданных в named.wsf
Листинг 3.3. Файл named.wsf<job id="Named">
В <runtime>
В <description>
В РРјСЏ: named.wsf
В РљРѕРґРёСЂРѕРІРєР°: Windows
В </description>
В <named
В В name="РРјСЏ"
В В helpstring="РРјСЏ пользователя"
В В type="string" required="true"/>
В <named
  name="Компьютер"
В В helpstring="РРјСЏ рабочей станции"
В В type="string" required="false"/>
В <named
  name="Новый"