我想要一种使用两个不同的批处理脚本运行和检查两个相同的 application.exe 的方法(以防它们崩溃)。为了做到这一点,我需要根据 .exe 的来源路径单独检查每一个。
我当前的代码如下所示:
tasklist /FI "IMAGENAME eq TimeLoopServer.exe" 2>NUL | find /I /N "TimeLoopServer.exe">NUL
if "%ERRORLEVEL%"=="0" goto :PULSE
这非常有效,它会检测它是否在 Windows 中运行,如果没有,它会重新启动。
但现在我想从不同的目录运行第二个实例,所以我的想法是我可以像这样设置目录:
tasklist /FI "IMAGENAME eq C:\ServerOne\TimeLoopServer.exe" 2>NUL | find /I /N "C:\ServerOne\TimeLoopServer.exe">NUL
if "%ERRORLEVEL%"=="0" goto :PULSE
但这似乎没有检测到路径可执行文件。
有没有更好的方法来解决这个问题?
应用程序在任务管理器中看起来相同,唯一的区别是文件的启动位置。
我认为你有更多的运气,使用
wmic
,类似:
wmic process where caption="TimeLoopServer.exe" get commandline
=>
commandline
可能表示进程运行的目录,这不是您要找的吗?