如何用DOS命令杀死一个同程序不同名的进程

我一个同学有台电脑,经常有人在上面玩拳皇游戏,于是写了一个批处理,用的是taskkill命令,后面是/im 进程名就是游戏的程序名字,可是后来他们改了游戏的名字后就不能杀死了,而且我发现同一程序的进程每次启动PID都不一样,那样怎么才能把不同名但同程序的进程杀死呢。

很麻烦,可以简单介绍一下,不会就放弃吧,很专业的东西:

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"

-----------------------------------------------
用dos命令查看进程和结束进程

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格式有效。
��
�� 应用实例。
�� 1.查看本机进程
�� 在“命令提示符”中输入Tasklist命令即可显示本机的所有进程(图1)。本机的显示结果由5部分组成:图像名(进程名)、PID、会话名、会话#和内存使用。
��
�� 2.查看远程系统的进程
�� 在命令提示符下输入“Tasklist /s 218.22.123.26 /u jtdd /p 12345678”(不包括引号)即可查看到IP地址为218.22.123.26的远程系统的进程(图2)。其中/s参数后的 “218.22.123.26”指要查看的远程系统的IP地址,/u后的“jtdd”指Tasklist命令使用的用户账号,它必须是远程系统上的一个合法账号,/p后的“12345678”指jtdd账号的密码。
�� 注意:使用Tasklist命令查看远程系统的进程时,需要远程机器的RPC服务的支持,否则,该命令不能正常使用。
��
�� 3.查看系统进程提供的服务
�� Tasklist命令不但可以查看系统进程,而且还可以查看每个进程提供的服务。如查看本机进程SVCHOST.EXE提供的服务,在命令提示符下输入“Tasklist /svc”命令即可(图3)。你会惊奇地发现,有4个SVCHOST.EXE进程,而总共有二十几项服务使用这个进程。
�� 对于远程系统来说,查看系统服务也很简单,使用“Tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc”命令,就可以查看IP地址为218.22.123.26的远程系统进程所提供的服务。
��
�� 4.查看调用DLL模块文件的进程列表
�� 要查看本地系统中哪些进程调用了shell32.dll模块文件,只需在命令提示符下输入“Tasklist /m shell32.dll”即可显示这些进程的列表。
��
�� 5.使用筛选器查找指定的进程
�� 在命令提示符下输入“TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running”,就可以列出系统中正在运行的非SYSTEM状态的所有进程。其中“/FI”为筛选器参数,“ne”和“eq”为关系运算符“不相等”和 “相等”。
��
�� 小提示
�� 谈到“Tasklist”命令,我们就不得不提到它的孪生兄弟“Taskkill”命令,顾名思义,它是用来关掉进程的。
�� 要关掉本机的notepad.exe进程,有两种方法:
�� 1.先使用Tasklist查找它的PID,假设系统显示本机notepad.exe进程的PID值为1132,然后运行“Taskkill /pid 1132”命令即可。其中“/pid”参数后面是要终止进程的PID值。
�� 2.直接运行“Taskkill /IM notepad.exe”命令,其中“/IM”参数后面为进程的图像名。
��
��Taskkill
��结束一个或多个任务或进程。可以根据进程 ID 或图像名来结束进程。
��
��语法
��taskkill [/s Computer [/u Domain\UserName [/p Password]]] {[/fi Filter [/fi Filter [ ...]]] [{/pid ProcessID | /im ImageName}] | /pid ProcessID | /im ImageName} [/f] [/t]
��
��参数
��/s Computer 指定远程计算机名称或 IP 地址(不能使用反斜杠)。该默认值是本地计算机。
��/u Domain\UserName 使用 UserName 或 Domain\UserName 指定的用户的帐户权限运行该命令。仅在指定 /s 后才能指定 /u。默认值是当前登录发布命令的计算机的用户具有的权限。
��/p Password 指定在 /u 参数中指定的用户帐户的密码。
��/fi Filter 指定将要终止或不终止的进程的类型。可以指定多个筛选器。使用通配符 (*) 指定所有任务或图像名称。以下是有效的筛选器名称、运算符和值:
��
��名称 运算符 值
��Status eq, ne RUNNING | NOT RESPONDING | UNKNOWN
��
��Imagename eq, ne 任何有效字符串。
��
��PID eg, ne, gt, lt, ge, le 任何有效的正整数。
��
��Session eg, ne, gt, lt, ge, le 任何有效的会话数。
��
��CPUTime eq, ne, gt, lt, ge, le 格式为 HH:MM:SS 的有效时间。MM 和 SS 参数应在 0 到 59 之间,HH 参数可以是任何一个有效的无符号数值。
��
��Memusage eg, ne, gt, lt, ge, le 任何有效的整数。
��
��Username eq, ne 任何有效的用户名 ([Domain\]UserName)。
��
��Services eq, ne 任何有效字符串。
��
��Windowtitle eq, ne 任何有效字符串。
��
��Modules eq, ne 任何有效字符串。
��
��/pid ProcessID 指定将终止的进程的进程 ID。
��
��/im ImageName 指定将终止的进程的图像名称。使用通配符 (*) 指定所有图像名称。
��
��/f 指定将强制终止的进程。对于远程进程可忽略此参数,所有远程进程都将被强制终止。
��
��/t 终止指定的进程与该进程启动的任何子进程。
��
��/? 在命令提示符下显示帮助。
��
��注释
��• 指定远程系统时,不支持“WindowTitle”和“Status”筛选器。
��• 只有与筛选器一起指定时,通配符 (*) 才能被接受。
��• 无论是否指定 /f 参数,都会始终强制执行对远程进程的终止操作。
��• 向 HOSTNAME 筛选器提供计算机名将导致关机和中止所有进程。
��• 使用 tasklist 确定要终止的进程的进程 ID (PID)。
��• Taskkill 替代了 Kill 工具。
��
��示例
��下面的示例说明如何使用 taskkill 命令:
��taskkill /pid 1230 /pid 1241 /pid 1253
��taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe
��taskkill /s srvmain /f /im notepad.exe
��taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *
��taskkill /s srvmain /u maindom\hiropln /fi "USERNAME ne NT*" /im *
��taskkill /pid 2134 /t /fi "username eq administrator"
��taskkill /f /fi "PID ge 1000" /im *
��
��命令符号的含义:
��省略号 (...) 可在命令行中重复多次的参数
��在方括号 ([]) 之间 可选项目
��在大括号 ({}) 之间; 将选项用管线 (|) 隔开。 示例:{even|odd} 用户必须从中只选择一个选项的选项组
��Courier font 代码或程序输出
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-03-19
真的有点复杂
相似回答