用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执行完毕,这样延迟就用不着了。