Книга: Windows Script Host для Windows 2000/XP
Запуск независимых консольных приложений и команд DOS
Разделы на этой странице:
- Листинг 2.32. Запуск независимого консольного приложения (JScript)
- Листинr 2.33. Запуск независимого консольного приложения (VBSсript)
- Замечание
- Листинг 2.34. Доступ к параметрам командной строки запущенного сценария (JScript)
- Листинг 2.35. Доступ к параметрам командной строки запущенного сценария (VBScript)
Запуск независимых консольных приложений и команд DOS
Для запуска независимых, т.е. работающих в отдельном адресном пространстве и использующих свою копию переменных среды, консольных приложений или внешних (представленных исполняемыми файлами на жестком диске) команд DOS используется метод Run
объекта WshShell
. При этом выполнение сценария можно приостановить до окончания работы запущенного приложения, а затем проанализировать код выхода этого приложения (для этого третий параметр метода Run
должен равняться true
). Соответствующие примеры сценариев на языках JScript и VBScript приведены в листингах 2.32 и 2.33 соответственно.
Листинг 2.32. Запуск независимого консольного приложения (JScript)
/*******************************************************************/
/* Имя: RunConApp.js */
/* Язык: JScript */
/* Описание: Запуск независимого консольного приложения и */
/* определение его кода выхода */
/*******************************************************************/
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);
/************* Конец *********************************************/
Листинг 2.35. Доступ к параметрам командной строки запущенного сценария (VBScript)
'*******************************************************************
' Имя: RunDOSCom.vbs
' Язык: VBScript
' Описание: Выполнение внутренних команд DOS
'*******************************************************************
Option Explicit
Dim WshShell, Code ' Объявляем переменные
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
' Запускаем внутреннюю команду COPY
WshShell.Run "%COMSPEC% /k copy /?",1
' Запускаем внутреннюю команду DIR
WshShell.Run "%COMSPEC% /c dir %WINDIR% > windir.txt",1
'************* Конец *********************************************/
- Запуск InterBase-сервера
- Инструмент командной строки gbak
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Инструмент командной строки gfix
- Повышение производительности приложений с помощью хранимых процедур
- 5.4 Команда trap: обработка прерываний
- Одновременный запуск нескольких копий сервера (multi-instancing)
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Разработка приложений баз данных InterBase на Borland Delphi
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Запуск Access. Открытие учебной базы данных Борей
- Команды и формирование культуры по инициативе сверху