//Функция для перевода строки из DOS- в Windows-кодировку
function DosToWin(s) {
var i,ss; //Объявляем переменные
//Проверяем, создан ли объект RusDict
if (typeof(RusDict)=="undefined")
//Если объект RusDict не создан, создаем его
MakeRusDict;
ss="";
for (i=0;i<s.length;i++) { //Цикл
по всем символам в строке
if (RusDict.Exists(s.charAt(i))) //Проверяем наличие символа в словаре
//Преобразуем i-й символ в Windows-кодировку
ss+=RusDict.Item(s.charAt(i));
else ss+=s.charAt(i);
}
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
Объект
WshController
имеет единственный метод
CreateScript
и предназначен для создания объекта-сценария на удаленной машине.
Замечание
В силу соображений безопасности удаленные сценарии можно запускать только с машин, на которых установлена операционная система Windows NT/2000/XP; то же самое требование предъявляется к машинам, на которых должны выполняться такие сценарии. Кроме этого, после начальной установки WSH по умолчанию выполнение удаленных сценариев запрещено; действия, которые необходимо произвести для разрешения выполнения таких сценариев, описаны в главе 2.