□ WshScriptExec. Позволяет запускать консольные приложения в качестве дочерних процессов, обеспечивает контроль состояния этих приложений и доступ к их стандартным входным и выходным потокам.
□ WshController. Позволяет запускать сценарии на удаленных машинах.
□ WshRemote. Позволяет управлять сценарием, запущенным на удаленной машине.
□ WshRemoteError. Используется для получения информации об ошибке, возникшей в результате выполнения сценария, запущенного на удаленной машине.
Кроме этого, имеется объект FileSystemObject, обеспечивающий доступ к файловой системе компьютера (этот объект будет подробно описан в главе 5).
Перейдем теперь к рассмотрению свойств и методов внутренних объектов WSH.
Замечание
Примеры всех сценариев, приведенных далее в этой главе, написаны на JScript. Так как эти сценарии только иллюстрируют свойства и методы WSH и не используют особенностей, характерных только для JScript, перевод их на VBScript не представляет никакого труда.
Свойства объекта WScriptпозволяют получить полный путь к использующемуся серверу сценариев (wscript.exe или cscript.exe), параметры командной строки, с которыми запущен сценарий, режим его работы (интерактивный или пакетный). Кроме этого, с помощью свойств объекта WScriptможно выводить информацию в стандартный выходной поток и читать данные из стандартного входного потока. Также WScriptпредоставляет методы для работы внутри сценария с объектами автоматизации и вывода информации на экран (в текстовом режиме) или в окно Windows.
Отметим, что в сценарии WSH объект WScriptможно использовать сразу, без какого-либо предварительного описания или создания, т. к. его экземпляр создается сервером сценариев автоматически. Для использования же всех остальных объектов нужно применять либо метод CreateObject ,либо определенное свойство другого объекта.
Свойства объекта WScriptпредставлены в табл. 1.2.
Таблица 1.2.Свойства объекта WScript
| Свойство |
Описание |
Application |
Предоставляет интерфейс IDispatchдля объекта WScript |
Arguments |
Содержит указатель на коллекцию WshArguments, в которой находятся параметры командной строки для исполняемого сценария |
FullName |
Содержит полный путь к исполняемому файлу сервера сценариев (в Windows ХР обычно это C:\WINDOWS\SYSTEM32\CSCRIPT.EXE или C:\WINDOWS\SYSTEM32\WSCRIPT.EXE) |
Name |
Содержит название объекта Wscript(Windows Script Host) |
Path |
Содержит путь к каталогу, в котором находится cscript.exe или wscript.exe (в Windows ХР обычно это C:\WINDOWS\SYSTEM32) |
ScriptFullName |
Содержит полный путь к запущенному сценарию |
ScriptName |
Содержит имя запущенного сценария |
StdErr |
Позволяет запущенному сценарию записывать сообщения в стандартный поток для ошибок |
StdIn |
Позволяет запущенному сценарию читать информацию из стандартного входного потока |
StdOut |
Позволяет запущенному сценарию записывать информацию в стандартный выходной поток |
Version |
Содержит версию WSH |
Опишем более подробно те свойства объекта WScript, которые требуют дополнительных пояснений.
В следующем примере (листинг 1.1) с помощью цикла for на экран выводятся все параметры командной строки, с которыми был запущен сценарий.
Листинг 1.1. Вывод на экран всех параметров сценария
/*******************************************************************/
/* Имя: ShowArgs.js */
/* Язык: JScript */
/* Описание: Вывод на экран параметров запущенного сценария */
/*******************************************************************/
var i, objArgs;
objArgs = WScript.Arguments; //Создаем объект WshArguments
for (i=0; i<=objArgs.Count()-1; i++)
WScript.Echo(objArgs(i)); //Выводим на экран i-й аргумент
/************* Конец *********************************************/
Другие примеры работы с аргументами командной строки приведены в листингах 1.4, 1.5, 2.22 и 2.23.
Свойства StdErr, StdIn, StdOut
Доступ к стандартным входным и выходным потокам с помощью свойств StdIn, StdOutи StdErrможно получить только в том случае, если сценарий запускался в консольном режиме с помощью cscript.exe. Если сценарий был запущен с помощью wscript.exe, то при попытке обратиться к этим свойствам возникнет ошибка " Invalid Handle" (рис. 1.9).
Рис. 1.9.Ошибка при обращении к StdInв графическом режиме
Читать дальше