- WScript
- FileSystemObject
- Drive
- File
- Folder
- TextStream
- Shell
- WshNetwork
- WshShell
- Wsh[Url]Shortcut
- WshScriptExec
- ADOStreamObject
- HTA
- CMD
- uconv
- Enumerator
- Источник
Объект WshScriptExec
Объект WshScriptExec создается методом Exec() объекта WshShell.
Метод WshShell.Exec
выполняет командную строку, указанную в качестве его параметра, и возвращает объект WScriptExec, свойства и методы которого предоставляют информацию о запущенной задаче и обеспечивают доступ к ее стандартным потокам ввода/вывода и ошибок (обработка этих потоков необходима в силу того, что непосредственно на экране строки, выводимые дочерним приложением, не появляются).
С помощью метода WshShell.Exec
можно запускать и графические оконные Windows-приложения. В этом случае создаваемый объект WshScriptExec полезен тем, что он позволяет получить идентификатор запущенного процесса (Process ID, PID), который затем можно использовать для активизации задачи при помощи метода WshShell.AppActivate.
Объект WScriptExec имеет единственный метод Terminate(), с помощью которого можно прервать выполнение дочернего процесса.
// Создание объекта WshScriptExec var WshShell = WScript.CreateObject("WScript.Shell") var WshExec = WshShell.Exec ( command )
Свойства и метод объекта WshScriptExec
ExitCode | Содержит код выхода, устанавливаемый дочерней задачей при завершении выполнения |
ProcessID | Содержит идентификатор процесса (ProcessID, PID), которому соответствует объект WshScriptExec |
Status | Содержит информацию о ходе выполнения дочерней задачи |
StdOut | Позволяет сценарию-родителю считывать информацию из стандартного выходного потока запущенной дочерней задачи |
StdIn | Позволяет сценарию-родителю записывать информацию в стандартный входной поток запущенной дочерней задачи |
StdErr | Позволяет сценарию-родителю считывать информацию из стандартного потока ошибок запущенной дочерней задачи |
Terminate() | Завершает работу приложения. |
ExitCode
Синтаксис
// Свойство. Только чтение. WshExec.ExitCode
Возвращаемое значение
Код выхода, устанавливаемый дочерней задачей при завершении выполнения.
Пример
var WshShell = WScript.CreateObject("WScript.Shell") // запуск "xcopy" с заведомо ошибочными параметрами var WshExec = WshShell.Exec("xcopy abc123") // пауза для запуска приложения WScript.Sleep (2000); // чтение кода выхода WScript.Echo ( WshExec.ExitCode );
ProcessID
Синтаксис
// Свойство. Только чтение. WshExec.ProcessID
Возвращаемое значение
Идентификатор запущенного процесса (PID).
Пример
var WshShell = WScript.CreateObject("WScript.Shell") var WshExec = WshShell.Exec("notepad"); WScript.Sleep (2000); WshShell.AppActivate (WshExec.ProcessID); WshShell.SendKeys ("0123456789");
Status
Синтаксис
// Свойство. Только чтение. WshExec.Status
Возвращаемое значение
Состояние запущенного процесса. Возможные значения:
- 0 - приложение запущено.
- 1 - приложение завершено.
Пример
var WshShell = WScript.CreateObject("WScript.Shell") var WshExec = WshShell.Exec("notepad"); WScript.Sleep (2000); WScript.Echo ( "status - " + WshExec.Status ); WshExec.Terminate(); WScript.Sleep (2000); WScript.Echo ( "status - " + WshExec.Status );
StdOut
Синтаксис
// Свойство. Только чтение. WshExec.StdOut
Возвращаемое значение
Объект TextStream, соответствующий стандартному выходному потоку запущенной задачи.
Пример
var WshShell = WScript.CreateObject("WScript.Shell") var WshExec = WshShell.Exec("nslookup"); var InStream = WshExec.StdIn; InStream.WriteLine ("help"); InStream.WriteLine ("exit"); var OutStream = WshExec.StdOut; var s = ''; while (!OutStream.AtEndOfStream) s += OutStream.ReadLine() + '\n'; WScript.Echo ( s );
StdIn
Синтаксис
// Свойство. Только чтение. WshExec.StdIn
Возвращаемое значение
Объект TextStream, соответствующий стандартному входному потоку запущенной задачи.
Пример
var WshShell = WScript.CreateObject("WScript.Shell") var WshExec = WshShell.Exec("nslookup"); var InStream = WshExec.StdIn; InStream.WriteLine ("help"); InStream.WriteLine ("exit"); var OutStream = WshExec.StdOut; var s = ''; while (!OutStream.AtEndOfStream) s += OutStream.ReadLine() + '\n'; WScript.Echo ( s );
StdErr
Синтаксис
// Свойство. Только чтение. WshExec.StdErr
Возвращаемое значение
Объект TextStream, соответствующий стандартному потоку ошибок запущенной задачи.
Пример
var WshShell = WScript.CreateObject("WScript.Shell"); var WshExec = WshShell.Exec("nslookup"); var InStream = WshExec.StdIn; InStream.WriteLine ("abc123"); InStream.WriteLine ("exit"); var OutStream = WshExec.StdErr; var s=''; while (! OutStream.AtEndOfStream) s += OutStream.ReadLine() + '\n'; WScript.Echo ( s );
Terminate()
Метод Terminate() пытается закрыть приложение, посылая ему сообщение WM_CLOSE. Если это не срабатывает, задача завершается принудительно.
Синтаксис
WshExec.Terminate ()
Параметры
Нет
Пример
var WshShell = WScript.CreateObject("WScript.Shell") var WshExec = WshShell.Exec("notepad"); WScript.Sleep (2000); WScript.Echo ( "status - " + WshExec.Status ); WshExec.Terminate(); WScript.Sleep (2000); WScript.Echo ( "status - " + WshExec.Status );