用于检查运行程序的批处理文件如果未运行则启动不运行

时间:2015-02-12 07:51:31

标签: batch-file windows-server-2008-r2 tasklist

我一直在尝试让这个批处理文件正常运行但仍然遇到问题。我认为我很接近,但需要帮助才能实现这一目标。当脚本运行时,我得到查找:参数格式不正确。

我在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

1 个答案:

答案 0 :(得分:1)

您可以检查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。

在重复使用之前,不要忘记将%running%标志重置为0.