我正在使用批处理文件来运行两个不同的可执行程序。我希望第二个程序在第一个程序完成初始化并打开计算机上的端口后运行。
我知道用于顺序命令排序的 call 和 / 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
答案 0 :(得分:1)
:: 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连接到您要连接的任何对象。