批量结束程序进程

最近为了挂QQ农场和牧场便安装了一个QQ农牧场外挂,但是每次弹出输入验证码的时候,系统都会自动创建一个Conime.exe进程,如果长时间不进行验证码输入,那么会发现任务管理器里面将多处几十个conime.exe进程,如果手动一个个的关闭实在是费事,幸亏微软为我们提供了"taskkill"这个命令,我们只需要在运行里输入"taskkill /f /im "conime.exe",然后执行它就可以强制关闭这个名称的所有进程,而且Taskkill这个命令还支持程序pid关闭方式,如果程序还会创建子进程的话,我们只需要加上/T参数即可。

当然taskkill只是一个结束进程的工具,我们还需要一个配合它的工具,那就是Tasklist命令,该命令可以列举正在运行的进程,该进程关联的服务等信息,可谓是十分方便啊!

下面是两款命令的使用帮助,不妨参考参考。

TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

描述:
这个命令行工具显示应用程序和本地
或远程系统上运行的相关任务/进程的
列表。

参数列表:
/S system 指定连接到的远程系统。

/U [domain\]user 指定应该在哪个用户上下文
执行这个命令。

/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。

/M [module] 列出所有其中符合指定模式名
的 DLL 模块的所有任务。
如果没有指定模块名,则
显示每个任务加载的所有模块。

/SVC 显示每个进程中的服务。

/V 指定要显示详述
信息。

/FI filter 显示一系列符合筛选器指定的标准
的任务。

/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。

/NH 指定栏标头不应该在
输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。

/? 显示帮助/用法。

筛选器:
筛选器名 有效操作符 有效值
----------- --------------- --------------
STATUS eq, ne 正在运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
SESSIONNAME eq, ne 会话名
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量(KB)
USERNAME eq, ne 用户名,格式为 [domain\]user

SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名

例如:
TASKLIST
TASKLIST /M
TASKLIST /V
TASKLIST /SVC
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domain\username /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

描述:
这个命令行工具可用来结束至少一个进程。
可以根据进程 id 或图像名来结束进程。

参数列表:
/S system 指定要连接到的远程系统。

/U [domain\]user 指定应该在哪个用户上下文
执行这个命令。

/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。

/F 指定要强行终止
进程。

/FI filter 指定筛选进或筛选出查询的
的任务。

/PID process id 指定要终止的进程的
PID。

/IM image name 指定要终止的进程的
图像名。通配符 '*'
可用来指定所有图像名。

/T Tree kill: 终止指定的进程
和任何由此启动的子进程。

/? 显示帮助/用法。

筛选器:
筛选器名 有效运算符 有效值
----------- --------------- --------------
STATUS eq, ne 运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 钟,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用,单位为 KB
USERNAME eq, ne 用户名,格式为
[domain\]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题

注意: 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 '*'。

注意: 远程进程总是要强行终止,
不管是否指定了 /F 选项。

例如:
TASKKILL /S system /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *
TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

顺便解释一下eq\ls\le这些的含义!

eq -- 等于
ne、neq -- 不等于
gt -- 大于
lt -- 小于
gte、ge -- 大于或等于
lte、le 小于或等于

最后悄悄的告诉你,这两个命令都支持远程操作,如果你知道某人的远程系统ip和账户密码,那么你可以整整他

:cool:

最后给你一个无任何垃圾进程的系统吧!

@echo off
for /f %%i in ('tasklist ^| findstr /v "csrss.exe explorer.exe lsass.exe smss.exe services.exe svchost.exe winlogon.exe Process"') do (
taskkill /im %%i /f
)
pause

  1. 飞猪 2010.04.28 10:00am

    板凳献给你。。。

  2. 问道推广员 2010.04.26 9:03pm

    有点意思。

HTML tag cannot be used in this comment.