. Обеспечивает доступ к именным параметрам командной строки запущенного сценария.
WshUnnamed
. Обеспечивает доступ к безымянным параметрам командной строки запущенного сценария.
WshShell
. Позволяет запускать независимые процессы, создавать ярлыки, работать с переменными среды, системным реестром и специальными папками Windows.
WshSpecialFolders
. Обеспечивает доступ к специальным папкам Windows.
WshShortcut
. Позволяет работать с ярлыками Windows.
WshUrlShortcut
. Предназначен для работы с ярлыками сетевых ресурсов.
WshEnvironment
. Предназначен для просмотра, изменения и удаления переменных среды.
WshNetwork
. Используется при работе с локальной сетью: содержит сетевую информацию для локального компьютера, позволяет
подключать сетевые диски и принтеры.
WshScriptExec
. Позволяет запускать консольные приложения в качестве дочерних процессов, обеспечивает контроль состояния этих приложений и доступ к их стандартным входным и выходным потокам.
WshController
. Позволяет запускать сценарии на удаленных машинах.
WshRemote
. Позволяет управлять сценарием, запущенным на удаленной машине.
WshRemoteError
. Используется для получения информации об ошибке, возникшей в результате выполнения сценария, запущенного на удаленной машине.
Кроме этого, имеется объект FileSystemObject, обеспечивающий доступ к файловой системе компьютера (этот объект будет подробно описан в главе 5).
Перейдем теперь к рассмотрению свойств и методов внутренних объектов WSH.
Замечание
Примеры всех сценариев, приведенных далее в этой главе, написаны на JScript. Так как эти сценарии только иллюстрируют свойства и методы WSH и не используют особенностей, характерных только для JScript, перевод их на VBScript не представляет никакого труда.
Объект WScript
Свойства объекта
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, которые требуют дополнительных пояснений.
Свойство Arguments
В следующем примере (листинг 1.1) с помощью цикла for на экран выводятся все параметры командной строки, с которыми был запущен сценарий.
Листинг 1.1. Вывод на экран всех параметров сценария
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
в графическом режиме
Работать с потоками
StdOut
и
StdErr
можно с помощью методов
Write
,
WriteLine
,
WriteBlankLines
, а с потоком
StdIn
— с помощью методов
Read
,
ReadLine
,
ReadAll
,
Skip
,
SkipLine
. Эти методы кратко описаны в табл. 1.3.
Таблица 1.3. Методы для работы с потоками
Метод
Описание
Read(n)
Считывает из потока
StdIn
заданное параметром n число символов и возвращает полученную строку
ReadAll
Читает символы из потока
StdIn
до тех пор, пока не встретится символ конца файла ASCII 26 (<Ctrl>+<Z>), и возвращает полученную строку