- WScript
- FileSystemObject
- Drive
- File
- Folder
- TextStream
- Shell
- WshNetwork
- WshShell
- Wsh[Url]Shortcut
- WshScriptExec
- ADOStreamObject
- HTA
- CMD
- uconv
- Enumerator
- Источник
Объект WScript
Объект WScript можно использовать в сценарии WSH сразу, без какого-либо предварительного описания или создания, т.к. его экземпляр создаётся сервером сценариев (CScript.exe или WScript.exe) автоматически. Для использования же всех остальных объектов нужно применять либо метод CreateObject, либо определенное свойство другого объекта.
Свойства объекта WScript позволяют получить полный путь к использующемуся серверу сценариев (wscript.exe или cscript.exe), параметры командной строки, с которыми запущен сценарий, режим его работы (интерактивный или пакетный). Кроме этого, с помощью свойств объекта WScript можно выводить информацию в стандартный выходной поток и читать данные из стандартного входного потока. Также WScript предоставляет методы для работы внутри сценария с объектами автоматизации и вывода информации на экран (в текстовом режиме) или в окно Windows.
Свойства | |
Arguments | Содержит указатель на коллекцию WshArguments, в которой находятся параметры командной строки для исполняемого сценария. |
BuildVersion | Содержит номер сборки сервера сценариев. |
FullName | Содержит полный путь к исполняемому файлу сервера сценариев (обычно это C:\WINDOWS\SYSTEM32\CSCRIPT.EXE или C:\WINDOWS\SYSTEM32\WSCRIPT.EXE). |
Interactive | Режим запуска скрипта - запрещён (false ) или разрешён (true ) диалог с пользователем. |
Name | Содержит название объекта Wscript (Windows Script Host). |
Path | Содержит путь к каталогу, в котором находится cscript.exe или wscript.exe (обычно это C:\WINDOWS\SYSTEM32). |
ScriptFullName | Содержит полный путь к запущенному сценарию. |
ScriptName | Имя запущенного файла скрипта. |
StdErr | Позволяет запущенному сценарию записывать сообщения в стандартный поток для ошибок. |
StdIn | Позволяет запущенному сценарию читать информацию из стандартного входного потока. |
StdOut | Позволяет запущенному сценарию записывать информацию в стандартный выходной поток. |
Timeout | Содержит время в секундах, по истечении которого скрипт будет автоматически остановлен. |
Version | Содержит номер версии WSH. |
Методы | |
ConnectObject() | Устанавливает соединение с объектом автоматизации для обработки его событий. |
CreateObject() | Создает программный объект автоматизации. |
DisconnectObject() | Разрывает соединение с объектом автоматизации. |
Echo() | Вывод сообщения в окно MessageBox (если скрипт был запущен с помощью WScript.exe) или на консоль (если скрипт был запущен с помощью CScript.exe). |
GetObject() | Завершение исполнения скрипта с указанным кодом возврата. |
Quit() | Завершение исполнения скрипта с указанным кодом возврата. |
Sleep() | Приостановка исполнения скрипта на указанное количество миллисекунд. |
Arguments
Синтаксис
// Свойство. Только чтение. WScript.Arguments
Возвращаемое значение
Объект WshArguments - коллекция параметров, с которыми был запущен скрипт. Объект WshArguments имеет ряд свойств и методов, позволяющих, например, обращаться к именным и безымянным параметрам скрипта по отдельности, и т.д:
Item(n)Свойство Item возвращает значение n-ного элемента коллекции (нумерация начинается с нуля).
Пример// Вызов скрипта: // wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4 // где "Path" - путь к файлу скрипта. var objArgs, e, x=''; objArgs = WScript.Arguments; //Создаем объект WshArguments var len = objArgs.length; for (i=0; i < len; i++) {x += objArgs.Item(i) +'\n';} WScript.Echo(x); //Выводим значения параметров на экран // Другой способ: // Создаем объект Enumerator для коллекции objArgs e = new Enumerator(objArgs), x=''; for (;!e.atEnd();e.moveNext()) { x += e.item() + '\n'; //Получаем значение элемента коллекции } WScript.Echo(x); //Выводим значения параметров на экран
Свойство length возвращает число элементов коллекции (количество аргументов, переданных скрипту).
ПримерWScript.Echo ( WScript.Arguments.Length );
Свойство Named возвращает коллекцию именных параметров, переданных скрипту.
Пример// Вызов скрипта: // wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4 // где "Path" - путь к файлу скрипта. var objNamed = WScript.Arguments.Named; if ( objNamed.Exists("Name") ) WScript.Echo ("Имя: " + objNamed.Item("Name") ); if ( objNamed.Exists("Computer") ) WScript.Echo ( "Компьютер: " + objNamed.Item("Computer") ); WScript.Echo ( "Число именных параметров: "+ objNamed.Length );
Свойство Unnamed возвращает коллекцию безымянных параметров, переданных скрипту.
Пример// Вызов скрипта: // wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4 // где "Path" - путь к файлу скрипта. var objUnnamed = WScript.Arguments.Unnamed; if (objUnnamed.length > 1 ) WScript.Echo ( "Первый безымянный параметр: " + objUnnamed(0) + "\nВторой безымянный параметр: " + objUnnamed.Item(1));
Метод Count() возвращает число элементов коллекции (количество аргументов, переданных скрипту).
Пример// Вызов скрипта: // wscript.exe Path /param1 /param2 // где "Path" - путь к файлу скрипта. WScript.Echo ( WScript.Arguments.Count() );
Метод ShowUsage() выводит на экран информацию о запущенном сценарии (описание аргументов, пример запуска). Подобную информацию можно задать только при использовании WSH-сценариев с разметкой XML, поэтому метод имеет смысл только в таких сценариях.
ПримерЗапустить сценарий named.wsf следующим образом:
wscript.exe named.wsf /Имя:Popov /Компьютер:404_Popov /Новый+
<job id="Named"> <runtime> <description> Имя: named.wsf Кодировка: Windows </description> <named name="Имя" helpstring="Имя пользователя" type="string" required="true"/> <named name="Компьютер" helpstring="Имя рабочей станции" type="string" required="false"/> <named name="Новый" helpstring="Признак того, что такого пользователя раньше не было" type="boolean" required="true"/> </runtime> <script language="JScript"> var objNamedArgs,s; s=""; // Вызываем метод ShowUsage для вывода на экран описания сценария WScript.Arguments.ShowUsage(); // Создаем объект WshNamed - коллекция именных аргументов сценария objNamedArgs= WScript.Arguments.Named; // Проверяем, существует ли аргумент /Имя: if (objNamedArgs.Exists("Имя")) //Получаем значение символьного аргумента /Имя s+="Имя: "+objNamedArgs("Имя")+"\n"; // Проверяем, существует ли аргумент /Компьютер: if (objNamedArgs.Exists("Компьютер")) // Получаем значение символьного аргумента /Компьютер s+="Машина: "+objNamedArgs("Компьютер")+"\n"; //Проверяем, существует ли аргумент /Новый if (objNamedArgs.Exists("Новый")) // Получаем с помощью условного оператора значение //логического аргумента /Новый s+="Новый пользователь: "+(objNamedArgs("Новый") ? "Да" : "Нет"); //Выводим полученные строки на экран WScript.Echo(s); </script> </job>
BuildVersion
Синтаксис
// Свойство. Только чтение. WScript.BuildVersion
Возвращаемое значение
Номер сборки сервера сценариев.
Пример
WScript.Echo ( WScript.BuildVersion );
ScriptName
Синтаксис
// Свойство. Только чтение. WScript.ScriptName
Возвращаемое значение
Имя запущенного файла скрипта.
Пример
WScript.Echo ( WScript.ScriptName );
FullName
Синтаксис
// Свойство. Только чтение. WScript.FullName
Возвращаемое значение
Полный путь к исполняемому файлу сервера сценариев.
Пример
WScript.Echo ( WScript.FullName ); // Результат: // c:\windows\system32\WScript.exe
Interactive
Синтаксис
// Свойство. Чтение и запись. WScript.Interactive [ = true|false ]
Возвращаемое значение
Число (булево). Режим запуска скрипта - запрещён (false
) или разрешён (true
) диалог с пользователем. Это свойство можно как задавать внутри скрипта, так и проверять с его помощью, не был ли скрипт запущен в пакетном режиме (параметр "//B" сервера сценариев).
Пример
WScript.Echo ( 'Interactive = ' + WScript.Interactive ); WScript.Interactive = false; WScript.Echo ( 'Interactive = ' + WScript.Interactive ); //Это сообщение НЕ будет выведено
Name
Синтаксис
// Свойство. Только чтение. WScript.Name
Возвращаемое значение
Наименование сервера сценариев.
Пример
WScript.Echo ( WScript.Name ); // Результат: // Windows Script Host
Path
Синтаксис
// Свойство. Только чтение. WScript.Path
Возвращаемое значение
Полный путь к каталогу исполняемого файла сервера сценариев.
Пример
WScript.Echo ( WScript.Path ); // Результат: // c:\windows\system32
ScriptFullName
Синтаксис
// Свойство. Только чтение. WScript.ScriptFullName
Возвращаемое значение
Полный путь к запущенному файлу скрипта.
Пример
WScript.Echo ( WScript.ScriptFullName );
ScriptName
Синтаксис
// Свойство. Только чтение. WScript.ScriptName
Возвращаемое значение
ПИмя запущенного файла скрипта.
Пример
WScript.Echo ( WScript.ScriptName );
StdErr
Синтаксис
// Свойство. Только чтение. WScript.StdErr
Возвращаемое значение
Объект "TextStream", соответствующий стандартному потоку ошибок. Доступен, если скрипт запущен с помощью CScript.exe.
Пример
WScript.StdErr.Write ("Hello, StdErr!");
StdIn
Синтаксис
// Свойство. Только чтение. WScript.StdIn
Возвращаемое значение
Объект "TextStream", соответствующий стандартному входному потоку. Доступен, если скрипт запущен с помощью CScript.exe.
Пример
WScript.StdOut.Write ("Input: "); var s = WScript.StdIn.ReadLine() WScript.Echo ( s );
StdOut
Синтаксис
// Свойство. Только чтение. WScript.StdOut
Возвращаемое значение
Объект "TextStream", соответствующий стандартному выходному потоку. Доступен, если скрипт запущен с помощью CScript.exe.
Пример
WScript.StdOut.Write ("Input: "); var s = WScript.StdIn.ReadLine WScript.Echo ( s );
Timeout
Синтаксис
// Свойство. Чтение и запись. WScript.Timeout [ = sec ]
Возвращаемое значение
Время в секундах, по истечении которого скрипт будет автоматически остановлен.
Пример
// Если время исполнения скрипта превысит 5 секунд, он будет завершен. WScript.Timeout = 5;
Version
Синтаксис
// Свойство. Только чтение. WScript.Version
Возвращаемое значение
Версия сервера сценариев.
Пример
WScript.Echo ( WScript.Version );
ConnectObject()
Метод ConnectObject() устанавливает соединение с объектом автоматизации для обработки его событий.
Синтаксис
WScript.ConnectObject( Obj, Prefix )
Параметры
- Obj
- Объект.
- Prefix
- Строка. Префикс функций-обработчиков событий. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.
Комментарии
Объект должен предоставлять интерфейс к своим событиям.
CreateObject()
Метод CreateObject() создаёт программный объект автоматизации.
Синтаксис
WScript.CreateObject( ProgID, Prefix )
Параметры
- ProgID
- Строка, программный идентификатор объекта (ProgID).
- Prefix
- Необязательный, строка. Префикс функций-обработчиков событий. Если объект предоставляет интерфейсы для связи с событиями, после создания объекта с указанием этого параметра в сценарии можно обрабатывать события, возникающие в этом объекте. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.
Пример
var Network = WScript.CreateObject("WScript.Network") WScript.Echo ( Network.ComputerName );
DisconnectObject()
Метод DisconnectObject() разрывает соединение с объектом автоматизации (созданное ранее для обработки его событий).
Синтаксис
WScript.DisconnectObject( Obj )
Параметры
- Obj
- Объект.
Комментарии
Если соединения с объектом не было установлено ранее, метод не производит никаких действий.
Echo()
Метод Echo() выводит сообщение в окно MessageBox (если скрипт был запущен с помощью WScript.exe) или на консоль (если скрипт был запущен с помощью CScript.exe).
Синтаксис
WScript.Echo( Arg1, Arg2, Arg3, ... )
Параметры
- Arg1, Arg2, ...
- Необязательные параметры. При выводе аргументы будут разделены пробелами. В случае использования CScript.exe вывод будет завершён символом новой строки. Если аргументы не заданы, будет выведена пустая строка.
Пример
WScript.Echo ( "раз", 25 );
GetObject()
Метод GetObject() создаёт программный объект автоматизации.
Синтаксис
WScript.GetObject( Pathname, ProgID, Prefix )
Параметры
- Pathname
- Строка, полный путь к файлу, содержащему объект.
- ProgID
- Необязательный, строка. Программный идентификатор объекта (ProgID).
- Prefix
- Необязательный, строка. Префикс функций-обработчиков событий. Если объект предоставляет интерфейсы для связи с событиями, после создания объекта с указанием этого параметра в сценарии можно обрабатывать события, возникающие в этом объекте. Когда объект сообщает о возникновении события, сервер сценариев вызывает соответствующую функцию. Например, если был указан префикс "Evt_", а событие называется "OnBegin", будет вызвана функция "Evt_OnBegin", которая должна быть описана в сценарии.
Комментарии
Метод используется, если создаваемый объект уже существует в памяти или создаётся из файла. Если создаваемый объект поддерживает создание только одного экземпляра, будет создан только один экземпляр объекта, независимо от того, сколько раз будет вызван метод GetObject.
Quit()
Метод Quit() завершает исполнение скрипта с указанным кодом возврата.
Синтаксис
WScript.Quit( ErrorCode )
Параметры
- ErrorCode
- Необязательный, число, код возврата приложения.
Пример
WScript.Quit (1); WScript.Echo ( "Message!"); // Этот оператор никогда не будет исполнен.
Sleep()
Метод Sleep() приостановливает исполнение скрипта на указанное количество миллисекунд.
Синтаксис
WScript.Sleep( Time )
Параметры
- Time
- Число, количество миллисекунд.
Пример
WScript.Echo ( 'Now' ); WScript.Sleep (4000); WScript.Echo ( 'Now' );