Книга: Windows Script Host для Windows 2000/XP
Элемент
Элемент <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>
<runtime>
<description>
Имя: named.wsf
Кодировка: Windows
</description>
<named
name="Имя"
helpstring="Имя пользователя"
type="string" required="true"/>
<named
name="Компьютер"
helpstring="Имя рабочей станции"
type="string" required="false"/>
<named
name="Новый"
helpstring="Признак того, что такого пользователя раньше не было"
type="boolean" required="true"/>
</runtime>
<script language="JScript">
var objNamedArgs,s;
s="";
//Вызываем метод ShowUsage для вывода на экран описания сценария
WScript.Arguments.ShowUsage();
//Создаем объект WshNamed - коллекция именных аргументов сценария
objNamedArgs= WScript.Arguments.Named;
//Проверяем, существует ли аргумент /Имя:
if (objNamedArgs.Exists("Имя"))
//Получаем значение символьного аргумента /Имя
s+="Имя: "+objNamedArgs("Имя")+"n";
//Проверяем, существует ли аргумент /Компьютер:
if (objNamedArgs.Exists("Компьютер"))
//Получаем значение символьного аргумента /Компьютер
s+="Машина: "+objNamedArgs("Компьютер")+"n";
//Проверяем, существует ли аргумент /Новый
if (objNamedArgs.Exists("Новый"))
//Получаем с помощью условного оператора значение
//логического аргумента /Новый
s+="Новый пользователь: "+(objNamedArgs("Новый") ? "Да" : "Нет");
//Выводим полученные строки на экран
WScript.Echo(s);
</script>
</job>
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Письма с элементами графики и вложениями
- Элемент STYLE
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Вложение файлов в элементы списков
- Логические элементы
- 5.2. Основные приемы работы, элементы текстового редактора
- Правило 16. Группируйте связанные между собой элементы