}
return ss;
}
/************* Начало *********************************************/
//Создаем объект WshShell
WshShell=WScript.CreateObject('WScript.Shell');
//Запускаем дочернее приложение
theJob = WshShell.Exec('cscript');
IsBreak=false;
for (;;) {
if (!theJob.StdOut.AtEndOfStream)
//Считываем всю информацию, находящуюся в потоке StdOut
//дочернего процесса
s+=theJob.StdOut.ReadAll();
if (IsBreak) break;
if (theJob.status==1) //Проверяем, не завершилась ли запущенная задача
IsBreak=true;
else WScript.Sleep(100);
}
//Преобразуем сформированные строки в Windows-кодировку
//и выводим их на экран
WScript.Echo(DosToWin(s));
/************* Конец *********************************************/
Таким образом, можно с помощью метода Exec запустить утилиту командной строки, передавать ей нужную входную информацию с помощью свойства StdIn и с помощью свойства StdOut получать и анализировать выдаваемые этой утилитой строки (соответствующие примеры приведены также в листингах 2.37 и 2.38).
Объект
Объект WshController имеет единственный метод CreateScript и предназначен для создания объекта-сценария на удаленной машине.
Замечание
В силу соображений безопасности удаленные сценарии можно запускать только с машин, на которых установлена операционная система Windows NT/2000/XP; то же самое требование предъявляется к машинам, на которых должны выполняться такие сценарии. Кроме этого, после начальной установки WSH по умолчанию выполнение удаленных сценариев запрещено; действия, которые необходимо произвести для разрешения выполнения таких сценариев, описаны в
Создается объект WshController следующим образом:
var WshController=WScript.CreateObject('WshController');
Обратите внимание, что для объекта WshController программным идентификатором (ProgID) является именно строка 'WshController', а не строка 'WScript.WshController', как указано в бета-версии документации на WSH 5.6.
Метод CreateScript возвращает указатель на объект WshRemote, с помощью которого можно контролировать состояние удаленного сценария и управлять его выполнением. При выполнении этого метода WSH последовательно производит следующие действия:
? подготавливает файл со сценарием для пересылки на удаленную станцию;
? с помощью протокола DCOM создает экземпляр объекта WshRemote на удаленной машине;
? пересылает сценарий на удаленную станцию для последующего выполнения с помощью метода Execute объекта WshRemote.
Синтаксис метода CreateScript:
CreateScript(
Параметр CommandLine
Второй необязательный параметр MachineName
Объект
Объект WshRemote необходим для контроля состояния сценариев, которые запущены на удаленной машине. В результате запуска такого сценария на удаленной машине создается процесс, поэтому можно сказать, что экземпляром объекта WshRemote, соответствующего выполняющемуся сценарию, является процесс. Создается WshRemote с помощью метода CreateScript объекта WshController:
var Controller,RemoteScript;
Controller=WScript.CreateObject('WshController');
RemoteScript=Controller.CreateScript('d: WscriptsWMyScript.js', 'Server1');
Объект WshRemote имеет два свойства: Error и Status.
В свойстве Error хранится ссылка на объект WshRemoteError, который содержит информацию об ошибке, приведшей к аварийному завершению работы удаленного сценария.
Числовое свойство Status позволяет определить состояние сценария, работающего асинхронно на удаленной машине. Возможные значения свойства Status приведены в табл. 1.19.
Status
| Значение | Числовое значение | Описание |
|---|
