windows下批处理进行cmd进程监控
2020-11-08 11:38:57
用python写了一个脚本,但是会不定时退出,无奈用bat来进行监控:RESTART
tasklist |find /C "cmd.exe" >temp.txt
set /p num= < temp.txt
del /F temp.txt
if "%num%" == "1" (start "" "D:\Cover\python\pull.bat")
ping -n 10 -w 2000 0.0.0.1> temp.txt
del /F temp.txt
goto RESTART
::http://www.luyisoft.com/blog/Windows/2020-11-08/8.html
::参考https://www.cnblogs.com/sunyllove/p/11225860.html
需要了解如下几个命令,tasklist +find,ping。tasklist是列出所有进程,可以指定只列出某用户的进程,用/FI参数过滤。find/C可以去tasklist的结果中查找指定进程名,并输出个数。
还有个问题是如何设置每隔一段时间去检测进程是否在运行,我用的是ping命令自带的延迟参数-w,将IP地址设置成一个空地址,比如0.0.0.1,这样该命令会一直ping,直到一定n*w毫秒后才返回(n和w分别是参数-n和-w指定的值)。
注意1:goto语句是将监控程序设置成死循环,哇咔咔。
注意2:可以用start /D pathprogram去异步调用program程序,也就是不等program指定完毕就执行下面的语句,因此可以设置固定间隔(n*w毫秒)去监测。
如果用callprogram则是同步调用,会等待program执行完毕,这样延迟就用不着了。