позволяет сделать сценарий самодокументируемым, т.е. в этом случае при задании в командной строке ключа
/?
на экран будет автоматически выводиться информация об использовании сценария, о его синтаксисе и аргументах (именных и безымянных), а также пример запуска сценария с конкретными значениями аргументов.
При этом сам элемент
<runtime>
является лишь контейнером, а содержимое для вывода информации хранится в элементах
<named>
(описание именных параметров командной строки),
<unnamed>
(описание безымянных параметров
командной строки),
<description>
(описание самого сценария) и
<example>
(пример запуска сценария), которые находятся внутри
<runtime>
.
Замечание
Элемент
<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: