2017-02-22 32 views
-1

Итак, у меня есть эта партия, которая запускает .exe A и B, где A - это (игровая) пусковая установка, которая закрывает и запускает файл C. Могу ли я сделать это так после закрытия игры (C) файл B также закрывается?Batch - Запуск .exe A и B после закрытия C end B

Кроме того, я попытался собраться что-то вроде этого -

@echo off 
start A.exe 
start B.exe 
:CheckAgain 
tasklist | findstr "TheCProgram.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 
taskkill B.exe 
exit 

Что не работает ...

(Извините за плохой терминологии и опечаток, и все, что я такой нуб, когда дело доходит до этих вещей ... И я так потерял ТТ)

+0

'/ wait' - это не команда сама по себе. Это опция для команды «START». – Squashman

+0

'Sleep' также не является стандартной командой, вам может быть рекомендовано ввести следующее в окно ** Command Prompt **, чтобы узнать больше. 'Start /?', 'Timeout /?', 'TaskKill /?'. После того как вы поняли, как работают эти команды, обновите свой скрипт выше, отредактировав сообщение при необходимости. – Compo

+0

Спасибо за это! Кажется, я сейчас понимаю, что я не могу использовать стартовую команду, верно? Как мне заставить сценарий ждать exe (не запущенный пакетом)? – araraf

ответ

1

Вот простой цикл, который должен сделать это:

:CheckAgain 
tasklist | findstr "TheCProgram.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 

Сломался:

:CheckAgain    :: A label for the start of the loop 
tasklist     :: Get list of running programs 
findstr "TheCProgram.exe" :: Search to see if the program C is running? 
if errorlevel 1   :: If there was an error, then the program is not yet running. 
timeout /T 2    :: Wait 2 seconds 
& goto :CheckAgain   :: Go start the loop again to look for the program. 

(слегка испытано, не может быть незыблемым)


Вот пример скрипт, который используется,

@echo off 

:CheckAgain 
tasklist | findstr "calc.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 

echo The Calculator Program is now running. 

Он проверяет для стандартного оконного калькулятора calc.exe, который легко начать. Я запускаю командный файл в cmd, а затем после этого раза 2 или 3 раза запускаю калькулятор. Пакетный файл правильно обнаруживает, что запущен calc, и завершает пакетный файл.

+0

* Редактировать * Так что я попробовал это несколько раз, и он продолжает цикл, независимо от того, работает ли «TheCProgram.exe» или выключен – araraf