用于检查 运行 程序并启动的批处理文件 运行 不工作

Batch File to Check for Running Program and Start if not Running is not working

我一直在努力使这个批处理文件正常工作,但 运行 仍然存在问题。我想我很接近但需要帮助才能正常工作。当脚本运行时,我得到 Find: Parameter format not correct。

我在 运行 Windows Server 2008 R2 Standard 上。

@echo off 


tasklist /FI "IMAGENAME eq program.exe" | find /i “program.exe" 


IF ERRORLEVEL 2 GOTO NEXTPROGRAM

IF ERRORLEVEL 1 GOTO LAUNCHPROGRAM


:NEXTPROGRAM

goto SMADMIN



:LAUNCHPROGRAM

start "" "C:\path\to\program.exe"

goto SMADMIN


:SMADMIN

tasklist /FI "IMAGENAME eq program1.exe" | find /i “program1.exe" 


IF ERRORLEVEL 2 GOTO NEXTPROGRAM2

IF ERRORLEVEL 1 GOTO LAUNCHPROGRAM2


:NEXTPROGRAM2

goto COMPLETE



:LAUNCHPROGRAM2

start "" "C:\path\to\program1.exe"

goto COMPLETE

你可以这样查看exe是否运行:

SET running=0
FOR /f "tokens=*" %%A IN ('tasklist^ /v^| findstr /i /c:"program.exe"') DO SET running=1
IF %running%=1 GOTO NEXTPROGRAM
IF %running%=0 GOTO LAUNCHPROGRAM

之后您只需检查 %ProgramRunning% 是否设置为 1。

不要忘记在重新使用之前将 %运行% 标志重置回 0。