Показать сообщение отдельно
  #3 (permalink)  
Старый 19.04.2012, 15:03
Интересующийся
Отправить личное сообщение для Mixxx Посмотреть профиль Найти все сообщения от Mixxx
 
Регистрация: 11.04.2012
Сообщений: 20

Если бат файл простой тоесть там нет диалога с пользователем и надо просто тупо запустить его с параметрами и подождать пока он отработает то подойдет и такой код:

var cmd = new ActiveXObject("WScript.Shell"); //создаем объект шел
myApp = cmd.Exec("C:\\pr\\main.bat blablafile.txt auto"); //запускаим бат файл с параметрами


while (myApp.Status === 0)  //пока наша прога (читай бат файл) работает
{
    WScript.Sleep(100);//пауза что бы не перегружать проц
}

//читаем со стандартного потока вывода, запущеной проги
//все что она написала туда и выводим на экран
WScript.StdOut.Write(myApp.StdOut.ReadAll())
//"перенаправляем" поток ошибок проги на нашь поток ошибок
WScript.StdErr.Write(myApp.StdErr.ReadAll())

WScript.Echo("Приложение завершилось с кодом: "+myApp.ExitCode)
WScript.Sleep(7000); //что бы сразу экран не закрывался

(правда могут возникнуть проблемы с кодировкой хз как пофиксить)

Последний раз редактировалось Mixxx, 19.04.2012 в 15:06.
Ответить с цитированием