我一直试图让这个批处理文件正常工作,但一直遇到问题。我想我已经接近了,但需要帮助才能让它发挥作用。当脚本运行时,我得到Find:参数格式不正确。
我正在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。
在重新使用%running%标志之前,不要忘记将其重置为0。