Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Элемент

<runtime>
позволяет сделать сценарий самодокументируемым, т.е. в этом случае при задании в командной строке ключа
/?
на экран будет автоматически выводиться информация об использовании сценария, о его синтаксисе и аргументах (именных и безымянных), а также пример запуска сценария с конкретными значениями аргументов.

При этом сам элемент

<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:

//Проверяем, существует ли аргумент /Новый

if (objNamedArgs.Exists("Новый"))

 //Получаем с помощью условного оператора значение

 //логического аргумента /Новый

 s+="Новый пользователь: "+(objNamedArgs("Новый") ? "Да" : "Нет");

Если запустить сценарий named.wsf следующим образом:

wscript.exe named.wsf /Имя:Popov /Компьютер:404_Popov /Новый+

то на экран будет выведено диалоговое окно, показанное на рис. 3.3.

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

Листинг 3.3. Файл named.wsf
Поделиться:
Популярные книги

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Хозяйка дома в «Гиблых Пределах»

Нова Юлия
Любовные романы:
любовно-фантастические романы
5.75
рейтинг книги
Хозяйка дома в «Гиблых Пределах»

Фиктивный брак

Завгородняя Анна Александровна
Фантастика:
фэнтези
6.71
рейтинг книги
Фиктивный брак

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

По дороге на Оюту

Лунёва Мария
Фантастика:
космическая фантастика
8.67
рейтинг книги
По дороге на Оюту

Мастер 5

Чащин Валерий
5. Мастер
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Мастер 5

Не лечи мне мозги, МАГ!

Ордина Ирина
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.00
рейтинг книги
Не лечи мне мозги, МАГ!

Измена. Право на семью

Арская Арина
Любовные романы:
современные любовные романы
5.20
рейтинг книги
Измена. Право на семью

Крепость над бездной

Лисина Александра
4. Гибрид
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Крепость над бездной

Неудержимый. Книга XXI

Боярский Андрей
21. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неудержимый. Книга XXI