1. Создание объекта
Объект WScript можно использовать в сценарии WSH сразу, без какого-либо предварительного описания или создания, т.к. его экземпляр создаётся сервером сценариев (CScript.exe или WScript.exe) автоматически.
2. Свойства
2.1. Timeout
Синтаксис:
Возвращаемое значение: время в секундах, по истечении которого скрипт будет автоматически остановлен.
Замечание: чтение и запись.
Пример:
VB.NET / VBA:
WScript.Timeout = 5
While 0=0 'Процессор будет загружен на 100% бесконечным циклом в течение 5 секунд
Wend
2.2. Name
Синтаксис:
Возвращаемое значение: наименование сервера сценариев.
Замечание: только чтение.
Пример:
2.3. FullName
Синтаксис:
Возвращаемое значение: полный путь к исполняемому файлу сервера сценариев.
Замечание: только чтение.
Пример:
2.4. Path
Синтаксис:
Возвращаемое значение: полный путь к каталогу исполняемого файла сервера сценариев.
Замечание: только чтение.
Пример:
2.5. Version
Синтаксис:
Возвращаемое значение: версия сервера сценариев.
Замечание: только чтение.
Пример:
2.6. BuildVersion
Синтаксис:
Возвращаемое значение: номер сборки сервера сценариев.
Замечание: только чтение.
Пример:
VB.NET / VBA:
MsgBox WScript.BuildVersion
2.7. ScriptName
Синтаксис:
Возвращаемое значение: имя запущенного файла скрипта.
Замечание: только чтение.
Пример:
VB.NET / VBA:
MsgBox WScript.ScriptName
2.8. ScriptFullName
Синтаксис:
Возвращаемое значение: полный путь к запущенному файлу скрипта.
Замечание: только чтение.
Пример:
VB.NET / VBA:
MsgBox WScript.ScriptFullName
2.9. StdIn
Синтаксис:
Возвращаемое значение: объект "TextStream", соответствующий стандартному входному потоку. Доступен, если скрипт запущен с помощью CScript.exe.
Замечание: только чтение.
Пример:
VB.NET / VBA:
WScript.StdOut.Write "Input: "
s = WScript.StdIn.ReadLine
MsgBox s
2.10. StdOut
Синтаксис:
Возвращаемое значение: объект "TextStream", соответствующий стандартному выходному потоку. Доступен, если скрипт запущен с помощью CScript.exe.
Замечание: только чтение.
Пример:
VB.NET / VBA:
WScript.StdOut.Write "Input: "
s = WScript.StdIn.ReadLine
MsgBox s
2.11. StdErr
Синтаксис:
Возвращаемое значение: объект "TextStream", соответствующий стандартному потоку ошибок. Доступен, если скрипт запущен с помощью CScript.exe.
Замечание: только чтение.
Пример:
VB.NET / VBA:
WScript.StdErr.Write "Hello, StdErr!"
2.12. Arguments
Синтаксис:
Возвращаемое значение: объект "WshArguments" - коллекция параметров, с которыми был запущен скрипт. Объект "WshArguments" имеет ряд свойств и методов, позволяющих, например, обращаться к именным и безымянным параметрам скрипта по отдельности, и т.д. [/code]
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
VB.NET / VBA:
wscript.exe Path /param1 /param2
где "Path" - путь к файлу скрипта.
Пример:
VB.NET / VBA:
For Each Argument In WScript.Arguments
MsgBox Argument
Next
2.13. Interactive
Синтаксис:
Возвращаемое значение: число (булево). Режим запуска скрипта - запрещён (False) или разрешён (True) диалог с пользователем. Это свойство можно как задавать внутри скрипта, так и проверять с его помощью, не был ли скрипт запущен в пакетном режиме (параметр "//B" сервера сценариев).
Замечание: чтение и запись.
Пример:
VB.NET / VBA:
MsgBox WScript.Interactive
WScript.Interactive = False
MsgBox WScript.Interactive 'Это сообщение НЕ будет выведено
3. Методы
3.1. Sleep
Синтаксис:
Назначение: приостановка исполнения скрипта на указанное количество миллисекунд.
Параметры:
<Time> - число, количество миллисекунд.
Пример:
VB.NET / VBA:
MsgBox Now
WScript.Sleep 1000
MsgBox Now
3.2. Quit
Синтаксис:
Назначение: завершение исполнения скрипта с указанным кодом возврата.
Параметры:
<ErrorCode> - необязательный, число, код возврата приложения.
Пример:
VB.NET / VBA:
WScript.Quit 1
MsgBox "Message!" ' Этот оператор никогда не будет исполнен.
3.3. Echo
Синтаксис:
Echo(<Arg1>,<Arg2>,<Arg3>,...)
Назначение: вывод сообщения в окно MessageBox (если скрипт был запущен с помощью WScript.exe) или на консоль (если скрипт был запущен с помощью CScript.exe).
Параметры:
<Arg1>,<Arg2>,<Arg3>,... - необязательные параметры. При выводе аргументы будут разделены пробелами. В случае использования CScript.exe вывод будет завершён символом новой строки. Если аргументы не заданы, будет выведена пустая строка.
Пример:
3.4. CreateObject
Синтаксис:
CreateObject(<ProgID>,<Prefix>)
Назначение: создаёт программный объект автоматизации.
Параметры:
<ProgID> - строка, программный идентификатор объекта (ProgID).
<Prefix> - необязательный, строка. Префикс функций-обработчиков событий. Если объект предоставляет интерфейсы для связи с событиями, после создания объекта с указанием этого параметра в сценарии можно обрабатывать события, возникающие в этом объекте. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.
Описание: при использовании "обычной" функции VBScript "CreateObject" организовать обработку событий нельзя.
Пример:
VB.NET / VBA:
Set Network = WScript.CreateObject("WScript.Network")
MsgBox Network.ComputerName
3.5. ConnectObject
Синтаксис:
ConnectObject(<Obj>,<Prefix>)
Назначение: устанавливает соединение с объектом автоматизации для обработки его событий.
Параметры:
<Obj> - объект.
<Prefix> - строка. Префикс функций-обработчиков событий. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.
Описание: объект должен предоставлять интерфейс к своим событиям.
Пример:
VB.NET / VBA:
Set objWord = CreateObject("Word.Application")
Set objDocument = objWord.Documents.Add
objWord.Visible = True
WScript.ConnectObject objDocument, "Document_"
boolDone = False
Do
WScript.Sleep 100
Loop Until boolDone
Sub Document_Close
boolDone = True
WScript.Echo "Document was closed"
WScript.DisconnectObject objDocument
Set objDocument = Nothing
End Sub
3.6. DisconnectObject
Синтаксис:
Назначение: разрывает соединение с объектом автоматизации (созданное ранее для обработки его событий).
Параметры:
<Obj> - объект.
Описание: если соединения с объектом не было установлено ранее, метод не производит никаких действий.
3.7. GetObject
Синтаксис:
GetObject(<Pathname>,<ProgID>,<Prefix>)
Назначение: создаёт программный объект автоматизации.
Параметры:
<Pathname> - строка, полный путь к файлу, содержащему объект.
<ProgID> - необязательный, строка. Программный идентификатор объекта (ProgID).
<Prefix> - необязательный, строка. Префикс функций-обработчиков событий. Если объект предоставляет интерфейсы для связи с событиями, после создания объекта с указанием этого параметра в сценарии можно обрабатывать события, возникающие в этом объекте. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.
Описание: метод используется, если создаваемый объект уже существует в памяти или создаётся из файла. Если создаваемый объект поддерживает создание только одного экземпляра, будет создан только один экземпляр объекта, независимо от того, сколько раз будет вызван метод GetObject.
4. Объект WshArguments
4.1. Создание объекта
Пример:
VB.NET / VBA:
Set WshArg = WScript.Arguments
4.2. Свойства
4.2.1. Item
Синтаксис:
Возвращаемое значение: значение n-ного элемента коллекции (нумерация начинается с нуля).
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
где "Path" - путь к файлу скрипта.
Пример:
VB.NET / VBA:
Set WshArg = WScript.Arguments
If WshArg.Count>0 Then
MsgBox WshArg.Item(0)
MsgBox WshArg(0)
End If
4.2.2. Length
Синтаксис:
Возвращаемое значение: число элементов коллекции (количество аргументов, переданных скрипту).
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
VB.NET / VBA:
wscript.exe Path /param1 /param2
где "Path" - путь к файлу скрипта.
Пример:
VB.NET / VBA:
MsgBox WScript.Arguments.Length
4.2.3. Named
Синтаксис:
Возвращаемое значение: коллекция именных параметров, переданных скрипту.
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
VB.NET / VBA:
wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4
где "Path" - путь к файлу скрипта.
Пример:
VB.NET / VBA:
Set objNamed = WScript.Arguments.Named
If objNamed.Exists("Name") Then WScript.Echo "Имя: " & objNamed.Item("Name")
If objNamed.Exists("Computer") Then WScript.Echo "Компьютер: " & objNamed("Computer")
WScript.Echo "Число именных параметров: " & objNamed.Length
WScript.Echo "Число именных параметров: " & objNamed.Count
4.2.4. Unnamed
Синтаксис:
Возвращаемое значение: коллекция безымянных параметров, переданных скрипту.
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
VB.NET / VBA:
wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4
где "Path" - путь к файлу скрипта.
Пример:
VB.NET / VBA:
Set objUnnamed = WScript.Arguments.Unnamed
If objUnnamed.Count>0 Then WScript.Echo "Первый безымянный параметр: " & objUnnamed.Item(0)
If objUnnamed.Length>1 Then WScript.Echo "Второй безымянный параметр: " & objUnnamed(1)
4.3. Методы
4.3.1. Count
Синтаксис:
Назначение: возвращает число элементов коллекции (количество аргументов, переданных скрипту).
Параметры: нет.
Описание: приведённый ниже пример можно запустить например так:
VB.NET / VBA:
wscript.exe Path /param1 /param2
где "Path" - путь к файлу скрипта.
Пример:
VB.NET / VBA:
MsgBox WScript.Arguments.Count
4.3.2. ShowUsage
Синтаксис:
Назначение: выводит на экран информацию о запущенном сценарии (описание аргументов, пример запуска). Подобную информацию можно задать только при использовании WSH-сценариев с разметкой XML, поэтому метод имеет смысл только в таких сценариях.
Параметры: нет.
Пример:
VB.NET / VBA:
WScript.Arguments.ShowUsage