一、代码
监控Zip_Test.exe这个程序是否被关闭
@echo off
REM 监控程序是否关闭
:loop
tasklist /FI "IMAGENAME eq Zip_Test.exe" 2>NUL | find /I /N "Zip_Test.exe">NUL
if "%ERRORLEVEL%"=="0" ( echo 程序还在运行,继续监控
goto loop
) else (
echo Zip_Test.exe has been closed.
)
pause
二、代码解释
2.1 :loop
:后面的是标签名字,不一定要loop,可以是a、b、c。与goto一起使用实现循环
2.2 :tasklist
显示目前电脑的进程列表
2.3 :/FI
filter的缩写,后面接指定的筛选任务
2.4 "IMAGENAME eq Zip_Test.exe"
映像名称,找到名为Zip_Test.exe的进程。结果如下
2.5 2>NUL
前面的命令(IMAGENAME eq Zip_Test.exe)报错时,不打印出来
2.6 |
将前面的命令结果(上图)作为参数,输入给下一条命令(find /I /N "Zip_Test.exe")
2.7 find /I /N "Zip_Test.exe"
查找输入内容是否包含"Zip_Test.exe"
2.8 >NUL
1>NUL的省略写法。前面的命令(find /I /N "Zip_Test.exe")执行成功时,不打印出来
下图显示没有使用>NUL时的效果
2.9 if "%ERRORLEVEL%"=="0"
前面命令执行成功时,%ERRORLEVEL%为0,报错时为1或者2