[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理怎么监控进程?

偶想做一个批处理,监控系统某一个进程数量比如a.exe,当他数量超过3的时候就关掉前面开的2个,保留最后一个,请问怎么实现哦
http://www.bathome.net/redirect.php?fid=5&tid=8154&goto=nextnewset我看了这个教程,也修改不来,请教高手怎么做这个批处理哦,谢啦

怎么没人理偶啊

TOP

dingdingdingddingdding

TOP

搜索“批处理与进程”里有介绍。
另外,上次似乎有个人问过此问题,你也可以搜索下。
上次问的可能是怎么判断进程是同一个进程,怎么判断程序一共开了多少个进程,大概是这样,你自己搜索下。

给你个思路:
1、监控某进程的数量,怎么判断这个进程的数量?找这个程序的名称,一般相同名称的往往是统一个程序产生的,但还不敢确定,再判断路径,或者说,同一个进程,这个进程的文件名、路径名、后缀名等都是一样的,这就有判断依据了——查找进程路径。

2、判断是同一个程序产生的进程了,那么就要计算总共产生了多少个进程,这个也不难,会set的都能搞定,教程里也有现成的。

3、怎么判断前面开的2个,和保留后面的一个?这个需要时间,也就是你说的监控,每一次运行发现有新的同一程序的进程,但PID不同的都要记录下来。一旦达到3个就可以处理了,这个也不难,会IF判断的都可以。

没时间帮你写代码,自己找教程看一下。  [原创]批处理与进程
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

  1. @Echo Off&Setlocal Enabledelayedexpansion
  2. :re
  3. timeout /t 2
  4. for /f "tokens=1,2" %%i in ('tasklist ^| findstr "a.exe"') do (
  5. set /a n+=1
  6. set pid!n!=%%j
  7. )
  8. if %n%==3 taskkill /f /pid %pid1% /pid %pid2%&set n=0&goto :re
  9. if %n% lss 3 set n=0&goto :re
复制代码

TOP

我觉得应该从pid号下手。
莫求昨天无悔,但愿今日无愧。

TOP

回复 6# guaiwu


不要老是觉得,必须动手去试验,试一试就会发现这个方向是错的,无法根据PID判断先后顺序。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表