□ 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
в графическом режиме
Читать дальше