+7 (4822) 75-00-45 +7 (920) 686-72-02

Тверь

Windows Script Host - объект WScript

1. Создание объекта

Объект WScript можно использовать в сценарии WSH сразу, без какого-либо предварительного описания или создания, т.к. его экземпляр создаётся сервером сценариев (CScript.exe или WScript.exe) автоматически. 

2. Свойства

2.1. Timeout

Синтаксис: Timeout

Возвращаемое значение: время в секундах, по истечении которого скрипт будет автоматически остановлен. 

Замечание: чтение и запись. 

Пример:

WScript.Timeout = 5 While 0=0 'Процессор будет загружен на 100% бесконечным циклом в течение 5 секунд Wend

2.2. Name

Синтаксис: Name

Возвращаемое значение: наименование сервера сценариев. 

Замечание: только чтение. 

Пример:

MsgBox WScript.Name

2.3. FullName

Синтаксис: FullName

Возвращаемое значение: полный путь к исполняемому файлу сервера сценариев. 

Замечание:только чтение. 

Пример:

MsgBox WScript.FullName

2.4. Path

Синтаксис: Path

Возвращаемое значение: полный путь к каталогу исполняемого файла сервера сценариев.

Замечание: только чтение. 

Пример:

MsgBox WScript.Path

2.5. Version

Синтаксис: Version

Возвращаемое значение: версия сервера сценариев. 

Замечание: только чтение. 

Пример:

MsgBox WScript.Version

2.6. BuildVersion

Синтаксис: BuildVersion

Возвращаемое значение: номер сборки сервера сценариев. 

Замечание: только чтение. 

Пример:

MsgBox WScript.BuildVersion

2.7. ScriptName

Синтаксис: ScriptName

Возвращаемое значение: имя запущенного файла скрипта. 

Замечание: только чтение. 

Пример:

MsgBox WScript.ScriptName

2.8. ScriptFullName

Синтаксис: ScriptFullName

Возвращаемое значение: полный путь к запущенному файлу скрипта. 

Замечание: только чтение.

Пример:

MsgBox WScript.ScriptFullName

2.9. StdIn

Синтаксис: StdIn

Возвращаемое значение: объект "TextStream", соответствующий стандартному входному потоку. Доступен, если скрипт запущен с помощью CScript.exe. 

Замечание: только чтение. 

Пример:

WScript.StdOut.Write "Input: " s = WScript.StdIn.ReadLine MsgBox s

2.10. StdOut

Синтаксис: StdOut

Возвращаемое значение: объект "TextStream", соответствующий стандартному выходному потоку. Доступен, если скрипт запущен с помощью CScript.exe. 

Замечание: только чтение.

Пример:

WScript.StdOut.Write "Input: " s = WScript.StdIn.ReadLine MsgBox s

2.11. StdErr

Синтаксис: StdErr

Возвращаемое значение: объект "TextStream", соответствующий стандартному потоку ошибок. Доступен, если скрипт запущен с помощью CScript.exe. 

Замечание: только чтение. 

Пример:

WScript.StdErr.Write "Hello, StdErr!"

2.12. Arguments

Синтаксис: Arguments

Возвращаемое значение: объект "WshArguments" - коллекция параметров, с которыми был запущен скрипт. Объект "WshArguments" имеет ряд свойств и методов, позволяющих, например, обращаться к именным и безымянным параметрам скрипта по отдельности, и т.д. 

Замечание:только чтение. Приведённый ниже пример можно запустить например так:

wscript.exe Path /param1 /param2

где "Path" - путь к файлу скрипта. 

Пример:

For Each Argument In WScript.Arguments MsgBox Argument Next

2.13. Interactive

Синтаксис: Interactive

Возвращаемое значение: число (булево). Режим запуска скрипта - запрещён (False) или разрешён (True) диалог с пользователем. Это свойство можно как задавать внутри скрипта, так и проверять с его помощью, не был ли скрипт запущен в пакетном режиме (параметр "//B" сервера сценариев).

Замечание: чтение и запись. 

Пример:

MsgBox WScript.Interactive WScript.Interactive = False MsgBox WScript.Interactive 'Это сообщение НЕ будет выведено

3. Методы

3.1. Sleep

Синтаксис: Sleep(<Time>)

Назначение: приостановка исполнения скрипта на указанное количество миллисекунд.

Параметры: <Time> - число, количество миллисекунд.

Пример: 

MsgBox Now WScript.Sleep 1000 MsgBox Now

3.2. Quit

Синтаксис: Quit(<ErrorCode>)

Назначение: завершение исполнения скрипта с указанным кодом возврата. 

Параметры: <ErrorCode> - необязательный, число, код возврата приложения.

Пример:

WScript.Quit 1 MsgBox "Message!" ' Этот оператор никогда не будет исполнен.

3.3. Echo

Синтаксис: Echo(<Arg1>,<Arg2>,<Arg3>,...)

Назначение: вывод сообщения в окно MessageBox (если скрипт был запущен с помощью WScript.exe) или на консоль (если скрипт был запущен с помощью CScript.exe). 

Параметры: <Arg1>,<Arg2>,<Arg3>,... - необязательные параметры. При выводе аргументы будут разделены пробелами. В случае использования CScript.exe вывод будет завершён символом новой строки. Если аргументы не заданы, будет выведена пустая строка.

Пример: 

WScript.Echo "раз", 25

3.4. CreateObject

Синтаксис: CreateObject(<ProgID>,<Prefix>)

Назначение: создаёт программный объект автоматизации. 

Параметры:

  • <ProgID> - строка, программный идентификатор объекта (ProgID).
  • <Prefix> - необязательный, строка. Префикс функций-обработчиков событий. Если объект предоставляет интерфейсы для связи с событиями, после создания объекта с указанием этого параметра в сценарии можно обрабатывать события, возникающие в этом объекте. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.

Описание: при использовании "обычной" функции VBScript "CreateObject" организовать обработку событий нельзя. 

Пример:

Set Network = WScript.CreateObject("WScript.Network") MsgBox Network.ComputerName

3.5. ConnectObject

Синтаксис: ConnectObject(<Obj>,<Prefix>)

Назначение: устанавливает соединение с объектом автоматизации для обработки его событий.

Параметры:

  • <Obj> - объект.
  • <Prefix> - строка. Префикс функций-обработчиков событий. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.

Описание: объект должен предоставлять интерфейс к своим событиям. 

Пример:

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

Синтаксис: DisconnectObject(<Obj>)

Назначение: разрывает соединение с объектом автоматизации (созданное ранее для обработки его событий). 

Параметры: <Obj> - объект.

Описание: если соединения с объектом не было установлено ранее, метод не производит никаких действий. 

3.7. GetObject

Синтаксис: GetObject(<Pathname>,<ProgID>,<Prefix>)

Назначение: создаёт программный объект автоматизации. 

Параметры:

  • <Pathname> - строка, полный путь к файлу, содержащему объект.
  • <ProgID> - необязательный, строка. Программный идентификатор объекта (ProgID).
  • <Prefix> - необязательный, строка. Префикс функций-обработчиков событий. Если объект предоставляет интерфейсы для связи с событиями, после создания объекта с указанием этого параметра в сценарии можно обрабатывать события, возникающие в этом объекте. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.

Описание: метод используется, если создаваемый объект уже существует в памяти или создаётся из файла. Если создаваемый объект поддерживает создание только одного экземпляра, будет создан только один экземпляр объекта, независимо от того, сколько раз будет вызван метод GetObject. 

4. Объект WshArguments

4.1. Создание объекта

Пример:

Set WshArg = WScript.Arguments

4.2. Свойства

4.2.1. Item

Синтаксис: Item(<Index>)

Возвращаемое значение: значение n-ного элемента коллекции (нумерация начинается с нуля).

Замечание: только чтение. Приведённый ниже пример можно запустить например так:

wscript.exe Path /param1

где "Path" - путь к файлу скрипта. 

Пример:

Set WshArg = WScript.Arguments If WshArg.Count>0 Then MsgBox WshArg.Item(0) MsgBox WshArg(0) End If

4.2.2. Length

Синтаксис: Length

Возвращаемое значение: число элементов коллекции (количество аргументов, переданных скрипту). 

Замечание: только чтение. Приведённый ниже пример можно запустить например так:

wscript.exe Path /param1 /param2

где "Path" - путь к файлу скрипта. 

Пример:

MsgBox WScript.Arguments.Length

4.2.3. Named

Синтаксис: Named

Возвращаемое значение: коллекция именных параметров, переданных скрипту. 

Замечание:только чтение. Приведённый ниже пример можно запустить например так:

wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4

где "Path" - путь к файлу скрипта. 

Пример:

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

Синтаксис: Unnamed

Возвращаемое значение: коллекция безымянных параметров, переданных скрипту. 

Замечание:только чтение. Приведённый ниже пример можно запустить например так:

wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4

где "Path" - путь к файлу скрипта. 

Пример:

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

Синтаксис: Count

Назначение: возвращает число элементов коллекции (количество аргументов, переданных скрипту). 

Параметры: нет. 

Описание: приведённый ниже пример можно запустить например так:

wscript.exe Path /param1 /param2

где "Path" - путь к файлу скрипта. 

Пример:

MsgBox WScript.Arguments.Count

4.3.2. ShowUsage

Синтаксис: ShowUsage

Назначение: выводит на экран информацию о запущенном сценарии (описание аргументов, пример запуска). Подобную информацию можно задать только при использовании WSH-сценариев с разметкой XML, поэтому метод имеет смысл только в таких сценариях. 

Параметры: нет. 

Пример:

WScript.Arguments.ShowUsage

Ищите нас в соц. сетях: