/Имя:"Андрей Попов" /Возраст:30
Если в качестве типа параметра командной строки используется "simple", то для этого параметра в командной строке указывается только его имя без значения:
/Имя /Возраст
Для того чтобы передать в сценарий аргумент командной строки типа "boolean", нужно после имени этого аргумента указать символ " +
" (соответствует логическому значению "истина") или " -
" (соответствует значению "ложь"). Например:
/Запись+ /ReWrite-
В листинге 3.3 приведен сценарий named.wsf, в котором в блоке описываются три именных аргумента командной строки:
□ /Имя
(обязательный аргумент символьного типа);
□ /Компьютер
(необязательный аргумент символьного типа);
□ /Новый
(обязательный аргумент логического типа).
После запуска с помощью 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
Имя: named.wsf
Кодировка: Windows
name="Имя"
helpstring="Имя пользователя"
type="string" required="true"/>
name="Компьютер"
helpstring="Имя рабочей станции"
type="string" required="false"/>
name="Новый"
helpstring="Признак того, что такого пользователя раньше не было"
type="boolean" required="true"/>
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);
С помощью элементов можно описывать (документировать) безымянные параметры командной строки сценария. В табл. 3.2 приведено описание аргументов элемента .
Таблица 3.2.Аргументы элемента
Аргумент |
Описание |
name |
Задает имя, которое будет указано для описываемого параметра командной строки при выводе информации о сценарии |
helpstring |
Строка, содержащая описание параметра командной строки |
many |
Определяет, сколько раз может быть указан безымянный параметр в командной строке. Значение, равное " true " (используется по умолчанию), означает, что безымянный параметр может встретиться в командной строке более одного раза. Значение, равное " false ", означает, что безымянный параметр должен быть указан только один раз |
required |
Определяет, является ли безымянный параметр командной строки обязательным. Может принимать значения " true ", " on " или 1 (параметр нужно указывать обязательно), " false ", " off " или 0 (параметр можно не указывать). Также значением аргумента "required" может быть целое число, которое показывает, сколько раз безымянный параметр должен обязательно быть указан в командной строке |
Информация, которая указывается для объявляемого в элементе параметра командной строки, используется, как и в случае элемента , только для самодокументируемости сценария и никак не влияет на реальные значения, которые будут указаны в командной строке при запуске сценария. Например, если безымянный параметр объявлен как обязательный ( required="true"
), но в действительности не был указан при запуске сценария, то никакой ошибки во время работы не произойдет.
Читать дальше