Андрей Попов - Windows Script Host для Windows 2000/XP
Узнать число безымянных параметров можно только с помощью свойства 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
Объект 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");
//Удаляем переменные среды
WshUsrEnv.Remove("EXAMPLE_1");
WshUsrEnv.Remove("EXAMPLE_2");
/************* Конец *********************************************/
Объект WshSpecialFolders
Объект WshSpecialFolders обеспечивает доступ к коллекции, содержащей пути к специальным папкам Windows (например, к рабочему столу или к меню Пуск (Start)); задание путей к таким папкам может быть необходимо, например, для создания непосредственно из сценария ярлыков на рабочем столе.
В Windows 9х поддерживаются следующие имена специальных папок:
в–Ў Desktop;
в–Ў Favorites;
в–Ў Fonts;
в–Ў MyDocuments;
в–Ў NetHood;
в–Ў PrintHood;
в–Ў Programs;
в–Ў Recent;В
в–Ў SendTo;
в–Ў StartMenu;
в–Ў Startup;
в–Ў Templates.
В Windows NT/2000/XP дополнительно можно получить доступ еще к четырем папкам, которые хранят данные для всех пользователей:
в–Ў AllUsersDesktop;
в–Ў AllUsersStartMenu;
в–Ў AllUsersPrograms;
в–Ў AllUsersStartup.
Объект WshSpecialFolders создается c помощью свойства SpecialFolders объекта WshShell:
var WshShell=WScript.CreateObject("WScript.Shell"),
В WshSpecFold=WshShell.SpecialFolders;
Как и почти все коллекции WSH, объект WshSpecialFolders имеет свойство Length и методы Count и Item. Доступ к отдельному элементу производится либо через имя соответствующей папки, либо через числовой индекс (Листинг 1.7).
Листинг 1.7. Обработка коллекции WshSpecialFolders/*******************************************************************/
/* РРјСЏ: ShowSpecFold.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                  */
/* Описание: Вывод на экран названий специальных папок Windows    */
/*          (коллекция WshSpecialFolders)                        */
/*******************************************************************/
var WshShell, WshFldrs, i;
//Создаем объект WshShell
WshShell = WScript.CreateObject("Wscript.Shell");
//Создаем объект WshSpecialFolders
WshFldrs = WshShell.SpecialFolders;
WScript.Echo("Некоторые специальные папки...");
//Выводим путь к папке Desktop
WScript.Echo("Desktop="+ WshFldrs.item("Desktop"));
//Выводим путь к папке Favorities
WScript.Echo("Favorites="+ WshFldrs("Favorites"));
//Выводим путь к папке Programs
WScript.Echo("Programs="+ WshFldrs("Programs"));
WScript.Echo("");
WScript.Echo("Список всех специальных папок...");
for (i=0;i<= WshFldrs.Count()-1;i++){
 //Выводим на экран i-й элемент коллекции WshFldrs
В WScript.Echo(WshFldrs(i));
}
/************* Конец *********************************************/
Другие примеры работы со специальными папками Windows приведены в главе 2 (см. листинги 2.39–2.42).
Работа с сетью и оболочкой Windows