Board logo

标题: [系统相关] [已解决]判断指定进程不存在则执行终止命令的批处理 [打印本页]

作者: temp    时间: 2009-12-8 18:48     标题: [已解决]判断指定进程不存在则执行终止命令的批处理

tasklist.exe>>abc.txt
判断abc.txt中不存在的进程则终止
(taskkill.exe /im *.* /f)

[ 本帖最后由 temp 于 2009-12-10 19:37 编辑 ]
作者: batman    时间: 2009-12-9 08:45

&&看到楼主的问题,我不禁想起了一个笑话:

在一次列队时,队长喊了一声:“请没有来的站出来”。。。
作者: caruko    时间: 2009-12-9 09:52

咳...楼主这个,说话说清楚嘛
是不是说,在ABC.TXT里有一个进程列表
然后将tasklist的输出,对比ABC.TXT,多余的进程就关闭?
作者: batman    时间: 2009-12-9 10:29

下面是在本人本机上用的,请楼主自行修改吧:
  1. @echo off&color 1f&mode con cols=50 lines=5
  2. title 非法进程结束器(对杀软无效)
  3. echo.&echo.
  4. set "back=smss csrss winlogon services lsass svchost spoolsv alg nvsvc32 wdfmgr explorer ctfmon wmiprvse qq cmd iexplore lenovo_ce200_detect syntpenh"
  5. taskkill /f /im explorer.exe>nul 2>nul
  6. for %%a in (%back%) do set "_%%a.exe=a"
  7. for /f %%a in ('tasklist^|findstr /i ".exe"') do if not defined _%%a taskkill /f /im %%a>nul 2>nul
  8. for %%a in (%back%) do set "_%%a.exe="
  9. start explorer.exe>nul 2>nul
  10. echo           所有非法进程已经结束。
  11. ping /n 3 127.1>nul
复制代码

作者: temp    时间: 2009-12-9 12:02

谢谢楼上诸位,特别感谢batman,正是我想实现的目的

等晚上回家测试后再编辑帖子
作者: temp    时间: 2009-12-10 12:32

感谢batman,经测试非常好用,谢谢!

在实际操作中,有些病毒进程被杀死后会重新加载,能不能再次扫描一次,当发现非法进程死灰复燃后,自动搜索重新加载的进程所在的目录位置,然后给它改名,创建同名的文件夹防止再生,再次杀死该进程,记录被再次杀死该进程的完整路径及文件名,供手工判断分析是否是真正的病毒
作者: batman    时间: 2009-12-10 12:36     标题: 回复 6楼 的帖子

此问题已解决,请结贴,其他问题请另开贴讨论




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2