MyScript.js /User:Andrey /Computer:Server1
Тогда вывести на экран значение параметров Name и Computer можно двумя способами:
var objNamedArgs;
objNamedArgs=WScript.Arguments.Named;
WScript.Echo("Имя пользователя: "+objNamedArgs.Item("User"));
WScript.Echo("Имя компьютера: "+objNamedArgs.Item ("Computer"));
или просто
var objNamedArgs;
objNamedArgs=WScript.Arguments.Named;
WScript.Echo("Имя пользователя: "+objNamedArgs("User"));
WScript.Echo("Имя компьютера: "+objNamedArgs("Computer"));
Отметим также, что значением именного параметра, как и безымянного, может служить целая строка, состоящая из нескольких литералов и заключенная в кавычки, например:
MyScript.js /User:"Andrey Popov" /Computer:Server1
Тогда в результате выполнения в сценарии MyScript.js следующей строки:
WScript.Echo("Имя пользователя: "+ WScript.Arguments.Named("User"));
на экран будет выведено
Имя пользователя: Andrey Popov
Для того чтобы узнать, был ли указан при запуске сценария тот или иной именной параметр, используется метод Exists
объекта WshNamed
. Например,
if (WScript.Arguments.Named.Exists("User"))
WScript.Echo("Имя пользователя: "+ WScript.Arguments.Named("User"));
Примеры, иллюстрирующие использование объекта WshNamed, приведены также в главе 2 (см. листинги 2.22 и 2.23).
В коллекции WshUnnamed
содержатся параметры командной строки запущенного сценария, у которых нет имени (безымянные параметры). Создается этот объект с помощью свойства Unnamed
коллекции WshArguments
. Для того чтобы получить значение определенного аргумента, его номер используется в качестве индекса коллекции (нумерация начинается с нуля).
Замечание
Узнать число безымянных параметров можно только с помощью свойства Length
коллекции WshUnnamed
; метода Count
у этой коллекции нет.
Например, сценарий MyScript.js запущен с двумя безымянными параметрами:
MyScript.js "Andrey Popov" Server1
Тогда после выполнения в сценарии MyScript.js любого из следующих двух блоков:
var objUnnamedArgs;
obUnnamedArgs=WScript.Arguments.Unnamed;
WScript.Echo("Имя пользователя: "+objUnnamedArgs.Item(0));
WScript.Echo("Имя компьютера: "+objUnnamedArgs.Item(1));
или
var objUnnamedArgs;
obUnnamedArgs=WScript.Arguments.Unnamed;
WScript.Echo("Имя пользователя: "+objUnnamedArgs(0));
WScript.Echo("Имя компьютера: "+objUnnamedArgs(1));
на экран выведутся следующие строки:
Имя пользователя: Andrey Popov
Имя компьютера: Server1
Примеры, иллюстрирующие использование объекта WshUnnamed
, приведены также в главе 2 (см. листинги 2.22 и 2.23).
Объект WshEnvironment
позволяет получить доступ к коллекции, содержащей переменные среды заданного типа (переменные среды операционной системы, переменные среды пользователя или переменные среды текущего командного окна). Этот объект можно создать с помощью свойства Environment
объекта WshShell
или одноименного его метода:
var WshShell=WScript.Createobject("WScript.Shell"),
WshSysEnv=WshShell.Environment,
WshUserEnv=WshShell.Environment("User");
Объект WshEnvironment
имеет свойство Length
, в котором хранится число элементов в коллекции (количество переменных среды), и методы Count
и Item
. Для того чтобы получить значение определенной переменной среды, в качестве аргумента метода Item
указывается имя этой переменной в двойных кавычках. В следующем примере мы выводим на экран значение переменной среды PATH
:
var WshShell=WScript.CreateObject("WScript.Shell"), WshSysEnv=WshShell.Environment;
WScript.Echo("Системный путь:", WshSysEnv.Item("PATH"));
Можно также просто указать имя переменной в круглых скобках после имени объекта:
WScript.Echo("Системный путь:",WshSysEnv("PATH");
Кроме этого, у объекта WshEnvironment имеется метод Remove(strName), который удаляет заданную переменную среды. Например, в листинге 1.6 приведен сценарий, который удаляет две переменные ( EXAMPLE_1
и EXAMPLE_2
) из окружения среды пользователя.
Замечание
Если в окружении среды пользователя нет переменных с именами EXAMPLE_1
и EXAMPLE_2
, то при вызове метода Remove
произойдет ошибка.
Листинг 1.6. Удаление переменных среды
/*******************************************************************/
/* Имя: RemEnv.js */
/* Язык: JScript */
/* Описание: Удаление двух переменных среды */
/*******************************************************************/
//Создаем объект WshShell
var WshShell = WScript.CreateObject("WScript.Shell");
//Создаем объект WshEnvironment
var WshUsrEnv = WshShell.Environment("User");
//Удаляем переменные среды
Читать дальше