很多人对于DOS界面的操作都有一种奇怪的认知,认为那就是黑客使用的高级命令,实际上就和普通的鼠标操作是一样的,只是用命令行的形式去完成,这样有利有弊,好处是可以自动化更加方便快捷且精准,坏处就是没有可视化那么直观,但是如果只是在一些特定场景下使用,很多时候还是命令行更加方便。
比如如果电脑进程卡主了或者电脑中了病毒禁止打开任务管理器,那么如何使用DOS命令行强制关闭进程呢?
用命令提示符(cmd)打开任务管理器查看进程方法
![](/uploads/allimg/230316/140920H56-0.jpg)
开始→运行→cmd,然后在命令提示符窗口中输入Tasklist就可以查看计算机当前的进程了。
用命令提示符(cmd)终止某个进程的方法
- 使用pid值终结进程
- 使用映像名称终结进程
上面两种方式都需要使用TASKLIST命令进行查看,首先我们使用/?获取帮助,可以看到TASKLIST命令选项都是可选的,说明可以直接使用。
C:\Users\Administrator>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] 列出当前使用所给 exe/dll 名称的所有任务。
如果没有指定模块名称,显示所有加载的模块。
/SVC 显示每个进程中主持的服务。
/APPS 显示 Microsoft Store 应用及其关联的进程。
/V 显示详细任务信息。
/FI filter 显示一系列符合筛选器
指定条件的任务。
/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定列标题不应该
在输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。
/? 显示此帮助消息。
筛选器:
筛选器名称 有效运算符 有效值
----------- --------------- --------------------------
STATUS eq, ne RUNNING | SUSPENDED
NOT RESPONDING | UNKNOWN
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 用户名,格式为
[域\]用户
SERVICES eq, ne 服务名称
WINDOWTITLE eq, ne 窗口标题
模块 eq, ne DLL 名称
注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS"
筛选器。
使用TASKLIST命令查看当前所有进程的pid和映像名
![](/uploads/allimg/230316/1409205115-1.jpg)
TASKLIST命令
其中还使用到了筛选器选项,找到我们此次要关闭的对象QQ音乐。
![](/uploads/allimg/230316/1409206133-2.jpg)
找到进程
注意:筛选器后面的命令需要使用双引号包裹起来。
看一下TASKKILL命令帮助
TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
描述:
使用该工具按照进程 ID (PID) 或映像名称终止任务。
参数列表:
/S system 指定要连接的远程系统。
/U [domain\]user 指定应该在哪个用户上下文执行这个命令。
/P [password] 为提供的用户上下文指定密码。如果忽略,提示
输入。
/FI filter 应用筛选器以选择一组任务。
允许使用 "*"。例如,映像名称 eq acme*
/PID processid 指定要终止的进程的 PID。
使用 TaskList 取得 PID。
/IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来
指定所有任务或映像名称。
/T 终止指定的进程和由它启用的子进程。
/F 指定强制终止进程。
/? 显示帮助消息。
筛选器:
筛选器名 有效运算符 有效值
----------- --------------- -------------------------
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
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 窗口标题
说明
----
1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。
2) 远程进程总是要强行 (/F) 终止。
3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。
例如:
TASKKILL /IM notepad.exe
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM cmd.exe /T
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 域\用户名 /FI "用户名 ne NT*" /IM *
TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
看完帮助之后会发现终止一个进程实际上并不止小编列出来的两种方法,实际上使用PID,使用映像名称,使用会画编号,使用内存使用量等等都可以关闭指定进程。
但是我列出来的两个算是比较简单的了,那么看看如何执行的吧。
![](/uploads/allimg/230316/140920A31-3.jpg)
终止QQ音乐进程
注意:单纯是使用TASKKILL命令只会发送终止信号,并不一定能够立刻终止进程,而在最后加上选项/F,则可以立刻关闭进程。
命令:
C:\Users\Administrator>TASKKILL /IM QQMusic.exe //虽然发送了终止信号但是不一定关闭
成功: 给进程 "QQMusic.exe" 发送了终止信号,进程的 PID 为 12656。
C:\Users\Administrator>TASKKILL /IM QQMusic.exe /F //强制关闭效果很棒
成功: 已终止进程 "QQMusic.exe",其 PID 为 12656。
C:\Users\Administrator>TASKKILL /PID 12656 /F //PID也可以关闭