Примеры VBS: объект WScript

Статус
В этой теме нельзя размещать новые ответы.

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,862
Реакции
6,619
Объект WScript
Источник
Составил: Людоговский Александр​

Содержание:

1. Создание объекта
2. Свойства
2.1. Timeout
2.2. Name
2.3. FullName
2.4. Path
2.5. Version
2.6. BuildVersion
2.7. ScriptName
2.8. ScriptFullName
2.9. StdIn
2.10. StdOut
2.11. StdErr
2.12. Arguments
2.13. Interactive​
3. Методы
3.1. Sleep
3.2. Quit
3.3. Echo
3.4. CreateObject
3.5. ConnectObject
3.6. DisconnectObject
3.7. GetObject​
4. Объект WshArguments
4.1. Создание объекта
4.2. Свойства
4.2.1. Item
4.2.2. Length
4.2.3. Named
4.2.4. Unnamed​
4.3. Методы
4.3.1. Count
4.3.2. ShowUsage​
 
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

Синтаксис:
Возвращаемое значение: наименование сервера сценариев.
Замечание: только чтение.

Пример:
VB.NET / VBA:
MsgBox WScript.Name

2.3. FullName

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

Пример:
VB.NET / VBA:
MsgBox WScript.FullName

2.4. Path

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

Пример:
VB.NET / VBA:
MsgBox WScript.Path

2.5. Version

Синтаксис:
Возвращаемое значение: версия сервера сценариев.
Замечание: только чтение.

Пример:
VB.NET / VBA:
MsgBox WScript.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 вывод будет завершён символом новой строки. Если аргументы не заданы, будет выведена пустая строка.

Пример:
VB.NET / VBA:
WScript.Echo "раз", 25

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-ного элемента коллекции (нумерация начинается с нуля).
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
VB.NET / VBA:
wscript.exe Path /param1
где "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
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу