批处理以检查进程是否存在

时间:2017-11-04 12:14:14

标签: windows batch-file command-line cmd

我想要一个批处理来检查进程firefox.exe是否存在(在start命令启动之后)。 如果该过程存在,它将转到标签:全屏, 否则批次将进入标签:超时。然后,它将再次检查进程firefox.exe是否存在,如果不存在,它将再次转到标签:fullscreen直到进程存在。

这是我的批次:

@echo off
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
:timeout
timeout /t 5
:fullscreen
nircmd sendkeypress F11
exit

我该如何检查?

2 个答案:

答案 0 :(得分:1)

您可以显示已打开的程序列表,如下所示:

tasklist

检查firefox是否存在:

编辑:编辑代码以显示完整的工作示例

@echo off
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
goto :checkloop

:checkloop
tasklist|find "firefox.exe" > NUL
if %ERRORLEVEL% == 0 ( 
    call :fullscreen 
    exit
) else ( 
     call :timeout
     goto :checkloop
)


:fullscreen
nircmd sendkeypress F11
goto :EOF

:timeout
timeout /t 5
goto :EOF

答案 1 :(得分:1)

您也可以使用QUERY PROCESS:

@Echo Off
If Not Exist "%ProgramFiles(x86)%\Mozilla Firefox\firefox.exe" Exit/B
Start "" "%ProgramFiles(x86)%\Mozilla Firefox\firefox.exe"
:Loop
Timeout 5 /NoBreak>Nul
QProcess firefox.exe>Nul 2>&1||GoTo :Loop
NirCmd SendKeyPress F11