Читать «Windows Script Host для Windows 2000/XP» онлайн - страница 14

Андрей Владимирович Попов

Листинг 1.3. Сценарий EchoExample.js

/*******************************************************************/

/* Имя: EchoExample.js                                             */

/* Язык: JScript                                                   */

/* Описание: Использование метода WScript.Echo                     */

/*******************************************************************/

WScript.Echo();  //Выводим пустую строку

WScript.Echo(1,2,3); //Выводим числа

WScript.Echo("Привет!"); //Выводим строку

/*************  Конец *********************************************/

Рис. 1.10. Вывод информации с помощью метода Echo

Другие примеры использования метода Echo приведены в главе 2 (см. листинги 2.1, 2.2, 2.4 и 2.5).

Метод Sleep

В следующем примере сценарий переводится в неактивное состояние на 5 секунд:

WScript.Echo("Сценарий запущен, отдыхаем...");

WScript.Sleep(5000);

WScript.Echo("Выполнение завершено");

Метод Sleep необходимо применять при асинхронной работе сценария и какой-либо другой задачи, например, при имитации нажатий клавиш в активном окне с помощью метода WshShell.SendKeys (см. листинги 1.13, 2.31, 2.32).

Объекты-коллекции

В WSH входят объекты, с помощью которых можно получить доступ к коллекциям, содержащим следующие элементы:

□ параметры командной строки запущенного сценария или ярлыка Windows (объекты WshArguments, WshNamed и WshUnnamed);

□ значения переменных среды (объект WshEnvironment);

□ пути к специальным папкам Windows (объект WshSpecialFolders).

Объект WshArguments

Объект WshArguments содержит коллекцию всех параметров командной строки запущенного сценария или ярлыка Windows. Этот объект можно создать только с помощью свойства Arguments объектов WScript и WshShortcut.

В принципе, работать с элементами коллекции WshArguments можно стандартным для JScript образом — создать объект Enumerator и использовать его методы moveNext, item и atEnd. Например, вывести на экран все параметры командной строки, с которыми запущен сценарий, можно следующим образом (листинг 1.4).

Листинг 1.4. Вывод всех параметров сценария (стандартные коллекции JScript)

/********************************************************************/

/* Имя: EnumArgs.js                                                 */

/* Язык: JScript                                                    */

/* Описание: Вывод на экран параметров запущенного сценария         */

/********************************************************************/

var objArgs, e, x;

objArgs = WScript.Arguments; //Создаем объект WshArguments

//Создаем объект Enumerator для коллекции objArgs

e = new Enumerator(objArgs);

for (;!e.atEnd();e.moveNext()) {

 x = e.item();  //Получаем значение элемента коллекции

 WScript.Echo(x); //Выводим значение параметра на экран

}

/*************  Конец *********************************************/

Однако намного удобнее использовать методы Count и Item самого объекта WshArguments (метод Item имеется у всех коллекций WSH). Метод Count возвращает число элементов в коллекции, т. е. количество аргументов командной строки, а метод Item(n) — значение n-го элемента коллекции (нумерация начинается с нуля). Более того, чтобы получить значение отдельного элемента коллекции WshArguments, можно просто указать его индекс в круглых скобках после имени объекта.