Как выполнить вторую программу после того, как первая постоянная программа завершает свою инициализацию, используя пакетные команды? - PullRequest
0 голосов
/ 04 апреля 2019

Я использую командный файл для запуска двух разных исполняемых программ.Мне бы хотелось, чтобы вторая программа запускалась после того, как первая закончила инициализацию и открыла порт на моем компьютере.

Мне известны вызовы и / wait команды для последовательного упорядочивания команд, хотя первая программа - это постоянное приложение, открывающее порт на моем компьютере;следовательно, он никогда не «заканчивает» бег.Закрытие командной строки исполняемого файла закрывает порт.Из-за этого поведения, если я использую любую из вышеупомянутых команд, то вторая вызываемая программа завершает работу до первой и вызывает проблемы.Я понимаю, что это объяснение несколько сбивает с толку, но если потребуется разъяснение, я приведу больше контекста.Спасибо.

РЕДАКТИРОВАТЬ: Использование кода @ shadoe2020 и удаление оператора условия.

:: This file starts the mongod.exe and mongo.exe executables.
:: @ECHO OFF

start C:\Users\jacob\mongodb\bin\mongod.exe

:search
tasklist|find "mongod.exe"
TIMEOUT /T 3
GOTO found

:found
start C:\Users\jacob\mongodb\bin\mongo.exe
GOTO end

:end
PAUSE

1 Ответ

1 голос
/ 04 апреля 2019
:: This file starts the mongod.exe and mongo.exe executables.
:: @ECHO OFF

start C:\Users\jacob\mongodb\bin\mongod.exe

:search
ver > nul
tasklist|find "mongod.exe"
IF %ERRORLEVEL% EQU 0 GOTO :found
TIMEOUT /T 5
GOTO search

:found
start C:\Users\jacob\mongodb\bin\mongo.exe
GOTO end

:end
PAUSE

как насчет проверки процесса, который вы могли бы даже сделать тайм-аут после того, как он обнаружит, что процесс скажет 20 секунд, чтобы позволить программе 1 соединиться с тем, к чему вы подключаетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...