taskkill 是什么
taskkill 按进程名或 PID 结束进程,还能连带结束整棵子进程树、按用户名或状态过滤批量清理。它适合处理挂死进程与无人值守清理测试进程,但 /F 属于强杀,目标程序来不及保存数据与释放资源。
基本信息
| 适用平台 | Windows CMD(cmd.exe,全系客户端与服务器) |
|---|---|
| 语法 | taskkill /PID 编号 [/T] [/F];taskkill /IM 映像名 [/F];可叠加 /FI 过滤 |
| 关键开关 | /T 结束该进程及其子进程;/F 强制终止,不发送关闭请求 |
| 过滤条件 | /FI 支持 IMAGENAME、PID、USERNAME、STATUS、MEMUSAGE 等 |
| 权限要求 | 结束其他用户或系统进程需管理员权限 |
典型使用场景
- 结束已经无响应的图形程序,任务管理器也点不动时的替代手段
- 批量清理测试遗留进程,用映像名一次结束所有同名实例
- 按用户名过滤,回收某账号会话残留的全部进程
- 结束会拉起子进程的启动器,用 /T 把子进程一起清掉
- 部署脚本里回收旧实例,避免端口被残留进程占住
常用示例
常用示例
REM 按映像名结束,会先尝试温和关闭
taskkill /IM notepad.exe
REM 动手前先看清有哪些实例
tasklist /fi "IMAGENAME eq python.exe"
REM 强制结束整棵进程树
taskkill /PID 1234 /T /F
REM 按用户名结束该账号的所有进程
taskkill /FI "USERNAME eq CONTOSO\user" /F
REM 只结束已经无响应的进程
taskkill /FI "STATUS eq NOT RESPONDING"
REM 查看返回码判断结果
echo %ERRORLEVEL%参数速查
| 参数 | 作用 | 备注 |
|---|---|---|
| /IM 映像名 | 按可执行文件名匹配 | 匹配全部同名实例,多实例环境慎用 |
| /PID 编号 | 按进程号精确结束 | 最精确,先用 tasklist 查到编号 |
| /T | 同时结束子进程树 | 启动器与自动更新进程通常需要它 |
| /F | 强制终止 | 程序没有机会保存与清理 |
| /FI 条件 | 按用户名、状态、内存过滤 | 提高批量清理的精准度 |
/F 是强杀,目标程序来不及落盘、释放文件句柄或提交事务。数据库、正在编辑的文档、有连接池的业务服务都不该直接强杀,优先走服务停止或程序自带的优雅退出。
结束关键系统进程(部分 svchost 承载的服务)可能被拒绝执行,或引起系统不稳定。动手前先用 tasklist /svc /fi "PID eq 编号" 确认这个 PID 承载了哪些服务。