bat检查某进程个数,如超过限制值则杀掉

情景:开发的程序,当多个用户同时使用下载证书的时候,会产生很多winword.exe进程(他并没有自动释放,有20个以上),导致后面无法正常下载证书。于是乎想到这个方法

for /F %%i in ( 'tasklist ^| findstr winword.exe ^| find /c /v "" ') do ( set commitid=%%i)


set  /a limitNum=10
set /a winwordNum=%commitid%

echo %winwordNum%


if "%winwordNum%" gtr "%limitNum%" (
taskkill /f /im winword.exe
)

::winword.exe超过10个,则将其全部杀死
::使用任务计划程序,每隔1分钟调用本bat脚本

其中踩到的坑:

1、batch的执行语句后结果赋值,推荐使用for来操作赋值给变量。

2、tasklist 后面的 | 符号,要变成  ^|  转义,否则报语法错误。

3、如果写错语法,你就算结尾加上pause,他双击执行后 会照样一闪而过。

4、if 对比的时候, 加双引号,然后采用%var% 都用变量的形式来对比。之前用变量和纯数字对比不懂为啥,没有执行if体里面的语句。

参考资料:

https://www.cnblogs.com/zndxall/p/9188300.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值