Мне нужен код, чтобы пакетный файл запускал 2 программы одновременно, а когда одна программа закрывается, другая тоже закрывается. Например:

start program 1
start program 2 
When I exit program 1, program 2 will exit as well. But not before program 1 does.

Я уже пробовал этот код:

@echo off
cd "C:\Program Files\CCleaner"
start CCleaner64.exe

cd "C:\Program Files (x86)\Wunderlist2"
start Wunderlist.exe

Эта программа открывает обе программы одновременно, но когда я выхожу из "CCleaner", Wunderlist остается открытым.

2 ответа2

1

Вам нужно запустить программу 2 без ожидания, затем запустить программу 1 и дождаться ее завершения. После завершения вам нужно убить программу 2.

Попробуй это:

@echo off
start "C:\Program Files (x86)\Wunderlist2\Wunderlist.exe”
start /wait "C:\Program Files\CCleaner\CCleaner64.exe”
taskkill /f /im “Wunderlist.exe”
-1

Вот что вы можете сделать. Я должен сказать вам, что это, вероятно, не лучший метод, но если бы мне нужно было быстрое решение, это то, что я бы сделал.

Сначала найдите идентификатор процесса обоих процессов. Правильно?

Затем просканируйте список процессов, запущенных с помощью grep или любой другой подобной команды. Делай это, скажи каждую секунду.

Проверьте, присутствуют ли оба идентификатора. В тот момент, когда ваш цикл обнаруживает, что один из процессов не найден, убейте другой.

Но да, это означает, что вам придется поддерживать еще один процесс с циклом, работающим в фоновом режиме, который может замедлить работу вашего ПК, но не слишком сильно.

Прокомментируйте здесь, если вы найдете лучшую идею

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .