/*           определение его кода выхода                           */

/*******************************************************************/

var WshShell, Code;  //Объявляем переменные

//Создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

//Запускаем утилиту xcopy с ключом "/?" и ожидаем окончания ее работы

Code=WshShell.Run("xcopy /?",1,true);

//Печатаем полученный код возврата

WScript.Echo("Код возврата: ", Code);

/*************  Конец *********************************************/

Листинr 2.33. Запуск независимого консольного приложения (VBSсript)

'*******************************************************************

' Имя: RunConApp.vbs

' Язык: VBScript

' Описание: Запуск независимого консольного приложения и

'           определение его кода выхода

'*******************************************************************

Option Explicit

Dim WshShell, Code   ' Объявляем переменные

' Создаем объект WshShell

Set WshShell = WScript.CreateObject("WScript.Shell")

' Запускаем утилиту xcopy с ключом "/?" и ожидаем окончания ее работы

Code=WshShell.Run("xcopy /?",1,true)

' Печатаем полученный код возврата

WScript.Echo "Код возврата: ", Code

'*************  Конец *********************************************/

Для выполнения внутренней команды DOS нужно запустить командный интерпретатор (в Windows NT/2000/XP это файл cmd.exe, в Windows9х — command.com) и передать ему в качестве параметра нужную команду. Для того чтобы при вызове командного интерпретатора не заботиться о полном пути к cmd.exe, нужно использовать переменную среды COMSPEC.

Замечание

Для получения значения переменной среды ее имя нужно окружить знаками "%" (например, %COMSPEC%).

В листингах 2.34 и 2.35 приведены сценарии на языках JScript и VBScript, в которых запускаются внутренние команды COPY /? (вызов встроенной справки для сору) и DIR %WINDIR% (вывод содержимого системного каталога Windows).

При этом окно, в котором выполняется команда COPY /?, не закрывается после завершения этой команды, т.к. при запуске командного интерпретатора был указан ключ /k, а информация, выводимая командой DIR %WINDIR%, перенаправляется в файл windir.txt, после чего командное окно закрывается, т.к. для командного интерпретатора в этом случае был указан ключ .

Листинг 2.34. Доступ к параметрам командной строки запущенного сценария (JScript)

/*******************************************************************/

/* Имя: RunDOSCom.js                                               */

/* Язык: JScript                                                   */

/* Описание: Выполнение внутренних команд DOS                      */

/*******************************************************************/

var WshShell, Code; //Объявляем переменные

//Создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

//Запускаем внутреннюю команду COPY

WshShell.Run("%COMSPEC% /k copy /?",1);

//Запускаем внутреннюю команду DIR

WshShell.Run("%COMSPEC% /c dir %WINDIR% > windir.txt",1);

/*************  Конец *********************************************/

Перейти на страницу:

Похожие книги