Читать «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).
Метод
В следующем примере сценарий переводится в неактивное состояние на 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
содержит коллекцию всех параметров командной строки запущенного сценария или ярлыка 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
, можно просто указать его индекс в круглых скобках после имени объекта.