Taskkill

结束一个或多个任务或进程。可以根据进程 ID 或图像名来结束进程。

语法

taskkill [/s Computer] [/u Domain\User [/p Password]]] [/fi FilterName][/pid ProcessID]|[/im ImageName] [/f][/t]

参数

/s Computer
指定远程计算机名称或 IP 地址(不能使用反斜杠)。默认值是本地计算机。
/u Domain\User
运行具有由 User 或 Domain\User 指定用户的帐户权限命令。默认值是当前登录发布命令的计算机的用户权限。
/p Password
指定用户帐户的密码,该用户帐户在 /u 参数中指定。
/fi FilterName
指定将要终止或不终止的过程的类型。以下是有效的筛选器名称、运算符和值:

筛选器http://blog.sina.com.cn/hygxchxz
名称 运算符
Hostname eqne 任何有效字符串。
状态 eqne RUNNING|NOT RESPONDING
Imagename eqne 任何有效字符串。
PID egnegtltgele 任何有效的正整数。
Session egnegtltgele 任何有效的会话数。
CPUTime eqnegtltgele hh:mm:ss 格式的有效时间。
mm 参数和 ss 参数应在 0 到 59 之间,
hh 参数可以是任何一个有效的无符号的数值。
Memusage egnegtltgele 任何有效的整数。
用户名 eqne 任何有效的用户名 ([Domain\]User)。
服务 eqne 任何有效字符串。
Windowtitle eqne 任何有效字符串。
/pid ProcessID
指定将终止的过程的过程 ID。
/im ImageName
指定将终止的过程的图像名称。使用通配符 (*) 指定所有图像名称。
/f
指定将强制终止的过程。对于远程过程可忽略此参数,所有远程过程都将被强制终止。
/t
指定终止与父进程一起的所有子进程,常被认为是“树终止”。
/?
在命令提示符显示帮助。

注释

  • 只有与筛选器一起指定时,通配符 (*) 才能被接受。
  • 无论是否指定 /f 参数,都会始终强制执行对远程过程的终止操作。
  • 向 HOSTNAME 筛选器提供计算机名将导致关机和中止所有过程。
  • 使用 tasklist 确定要终止的过程的过程 ID (PID)。
  • Taskkill 替代了 Kill 工具。

筛选器 /fi

  通过指定筛选进或筛选出的查询,以获取符合筛选器指定的标准的任务。

  1. 筛选器名称:

    STATUS:运行状态,即某程序处于运行或无响应的状态。
    IMAGENAME:图像名,即映像名称。
    PID:PID 值
    SESSION:会话编号#
    SESSIONNAME:会话名
    CPUTIME:CPU 时间
    MEMUSAGE:内存使用量(KB)
    USERNAME:用户名

    SERVICES:服务名
    WINDOWTITLE:窗口标题
    MODULES:DLL 名
    Hostname:计算机全名中的主机名称部分

  2. 筛选器有效运算操作符:

    eq:包含,等于。
    ne:不包含,排除,不等于。
    gt:大于
    lt:小于
    ge:大于或等于
    le:小于或等于

  3. 筛选器有效值:

    数值必须符合筛选器名的规则才有效!

范例

    1. 强行结束所有处于无响应状态的 Internet Explorer 进程:

      taskkill /f /fi "STATUS eq NOT RESPONDING" /im iexplore.exe

    2. 使用批处理强行结束其他所有正在运行的批处理进程:

      @echo off & set han=%RANDOM%
      TITLE %han%
      Taskkill /f /im cmd.exe /fi "Windowtitle ne %han%" >nul
      pause
    3. 强行结束所有内存使用量大于 10240Kb 的进程,但不包括 explorer.exe 和 svchost.exe 进程:

      taskkill /f /fi "MEMUSAGE gt 10240" /fi "IMAGENAME ne explorer.exe" /fi "IMAGENAME ne svchost.exe" /im *

    4. 如果 Pid 为 1024 的某进程上挂了服务 hanye (即服务名为 hanye),就强行结束它:

      taskkill /f /fi "SERVICES eq hanye" /fi "pid eq 1024"

      或:

      taskkill /f /fi "SERVICES eq hanye" /pid 1024

    5. 显示所有加载了模块 ntdll.dll 且 Pid 大于或等于 1000 的进程,同时显示其加载的其他 dll 模块,输出时,使用 CSV 格式,并不显示栏标头:

      tasklist /m /fi "PID ge 1000" /fi "MODULES eq ntdll.dll" /fo csv /nh

      Table 格式:仿表格格式,主要用于文本输出。

      List 格式:列表格式,主要用于 Cmd 控制台窗口显示。

      Csv 格式:字符串格式,主要用于 For /f 解析。

    6. 仅强行结束登陆号码为 34886634 和 30194447 的2008版 UC 进程,同时不结束他们打开的 UC 房间进程等子进程:

      taskkill /f /fi "WINDOWTITLE eq 30194447" /fi "WINDOWTITLE eq 34886634" /im uc.exe

    7. 显示所有不是以当前帐户运行的 svchost 进程,并显示其所挂服务,输出时,使用 LIST 格式:

      tasklist /svc /fi "USERNAME ne %USERNAME%" /fi "IMAGENAME eq svchost.exe" /fo list

      注释:

      1. List 格式不能使用 /nh 禁止输出栏标头是因为 List 格式中没有栏标头。
      2. 在 Username 中,需要使用格式 Domain\User 。Domain 为计算机所在域,User 为用户帐户。如果User 使用当前帐户,Domain 可以省略。其他帐户,特别是 system 等,推荐使用域 NT AUTHORITY

    8. /fi /im /pid 都可以多次使用。例如:

      强行结束所有由当前帐户启动,并进程名前带 re 和带 de 的进程:

      Taskkill /f /fi "username eq %username%" /FI "IMAGENAME eq re*" /FI "IMAGENAME eq de*"

      强行结束 PID 从 3860 到 3862 的所有进程:

      Taskkill /f /pid 3860 /pid 3861 /pid 3862

      强行结束进程名分别是bk1.exe bj2.exe bm3.exe  的所有进程:

      Taskkill /f /im bk1.exe /im bj2.exe /im bm3.exe

    9. 强行结束 PID 从 3860 到 3862 的所有进程:

      for /l %i in (3860 1 3862) do @taskkill /f /pid %i >nul 2>nul

    10. 强行结束进程名分别是ba.exe bb.exe bc.exe …… bz.exe 的所有进程:

      for %i in (a-z) do @taskkill /f /im b%i.exe >nul 2>nul

      注释:

      Taskkill 中不支持通配符 ? 的使用。

    11. 显示所有 CPU 时间小于 00:00:10 进程,并且由 system 帐户运行的详细信息:

      tasklist /v /fi "USERNAME eq NT AUTHORITY\SYSTEM" /fi "CPUTIME lt 00:00:10"

      注释:

      /v 参数时的详细信息比不使用时(默认包括:图像名、PID、会话名、会话#)多出 状态、用户名、CPU 时间、窗口标题 等。

    12. 显示所有 svchost.exe 进程的PID、会话名及会话编号:

      for /F "skip=3 tokens=2,3,4" %i in ('tasklist /fi "IMAGENAME eq svchost.exe"') do @echo %i %j %k

      注释:

      会话:两个交换数据的主机之间所建立的一种逻辑连接。对话一般用序列和回执发送可靠的数据。负载平衡 TCP/IP
      通讯环境中,指向服务器的一组客户请求。这些请求可以被多个可能的并发 TCP
      连接调用。服务器程序有时会维护请求之间的状态信息。要保留对服务状态的访问,“网络负载平衡”在进行负载平衡时需要将某个会话中的所有请求指向同一个群集主机。。

    13. 强行结束并重新启动外壳程序 explorer.exe :

      taskkill /f /im explorer.exe & start explorer.exe

    14. 强行结束所有程序并关闭本地计算机:

      taskkill /f /fi "hostname eq %COMPUTERNAME%"

    15. 查看进程使用的端口的批处理:

      @echo off&color a&Title XP端口-进程查询-寒夜孤星【初学者】
      setlocal enabledelayedexpansion&echo.&echo.
      for /L %%k in (1 1 60) do set /p gu=*<nul
      echo.&echo *     本程序仅用于XP端口-进程查询(查看进程使用的端口)    *
      echo *                    寒夜孤星【初学者】                    *
      for /L %%k in (1 1 60) do set /p gu=*<nul
      echo.&echo.&echo.&echo          端口号           进程名称    
      ECHO TCP协议:
      for /F "usebackq skip=4 tokens=2,5" %%i in (`"netstat -ano -p TCP"`) do (
        call :Assoc %%i TCP %%j
        echo           !TCP_Port!           !TCP_Proc_Name!
      )
      ECHO UDP协议:
      for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p UDP"`) do (
        call :Assoc %%i UDP %%j
        echo           !UDP_Port!           !UDP_Proc_Name!
      )
      echo 请按任意键退出本程序。
      pause>nul
      :Assoc
      for /F "tokens=2 delims=:" %%e in ("%1") do (
          set  %2_Port=%%e
        )
      for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do (
         set %2_Proc_Name=%%~a
        )
      goto :eof

      转自:http://blog.sina.com.cn/s/blog_51a4af870100dygp.html

windows上批量杀指定进程的更多相关文章

  1. linux下如何批量杀JAVA进程或某个进程方法

    linux下如何批量杀JAVA进程或某个进程方法 在工作中经常需要停止JAVA进程,停止时间也比较长,那么有时候因为一些情况,需要把 linux 下JAVA所有进程 kill 掉,又不能用killal ...

  2. (转)linux下如何批量杀JAVA进程或某个进程方法

    在工作中经常需要停止JAVA进程,停止时间也比较长,那么有时候因为一些情况,需要把 linux 下JAVA所有进程 kill 掉,又不能用killall 直接杀掉某一进程名称包含的所有运行中进程(我们 ...

  3. windows 使用 xxfpm 解决 php-cgi 进程自动关闭

    windows 下 php-cgi 进程处理一定数量的访问后,就会自动关闭,由于没办法直接让 php-cgi 进程支持更多的访问数量,所以只能启动多个进程来满足需求. xxfpm 是一个可执行程序,它 ...

  4. windows下绑定线程(进程)到指定的CPU核心

    一个程序指定到单独一个CPU上运行会比不指定CPU运行时快.这中间主要有两个原因:1)CPU切换时损耗的性能.2)Intel的自动降频技术和windows的机制冲突:windows有一个功能是平衡负载 ...

  5. 写一个Windows上的守护进程(6)Windows服务

    写一个Windows上的守护进程(6)Windows服务 守护进程因为要开机启动,还要高权限,所以我就把它做成Windows服务了. 关于Windows服务的官方文档,大家可以看https://msd ...

  6. 写一个Windows上的守护进程(4)日志其余

    写一个Windows上的守护进程(4)日志其余 这次把和日志相关的其他东西一并说了. 一.vaformat C++日志接口通常有两种形式:流输入形式,printf形式. 我采用printf形式,因为流 ...

  7. 写一个Windows上的守护进程(2)单例

    写一个Windows上的守护进程(2)单例 上一篇的日志类的实现里有个这: class Singleton<CLoggerImpl> 看名字便知其意--单例.这是一个单例模板类. 一个进程 ...

  8. Linux 批量杀进程的命令

    使用awk批量杀进程的命令: ps -ef | grep firefox | grep -v grep | awk '{print "kill -9 "$2}'|sh #列出了当前 ...

  9. SetThreadAffinityMask windows下绑定线程(进程)到指定的CPU核心

    原帖地址:https://www.cnblogs.com/lvdongjie/p/4476766.html 一个程序指定到单独一个CPU上运行会比不指定CPU运行时快.这中间主要有两个原因:1)CPU ...

随机推荐

  1. Ansible 系统概述与部署

    Ansible 系统概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet但是有一个不同和优点是我们不需要在节点中安装 ...

  2. redis 学习(14)-- HyperLogLog

    HyperLogLog 什么是 HyperLogLog HyperLogLog 是基于 HyperLogLog 算法的一种数据结构,该算法可以在极小空间完成独立数量统计. 在本质上还是字符串类型. 重 ...

  3. C# 面向对象4 构造函数

    构造函数 1.构造函数用来创建对象,并且可以在构造函数中对对象进行初始化. (给对象的每个属性依次的赋值) 2.构造函数是用来创建对象的特殊方法: 1.方法名和类名一样. 2.没有返回值,连void都 ...

  4. window10提交代码到码云

    1.创建项目文件夹,例如创建一个"爬虫项目码云仓库" 2.进入项目文件夹,在地址栏输入cmd然后回车,这样就在该文件夹打开了终端 3.终端输入git init初始化项目仓库,此时会 ...

  5. Nginx之常用操作

    1) 将XXX.com 重定向到 www.XXX.com server { client_max_body_size 20m; listen ; server_name www.xxx.com xxx ...

  6. 第十二篇 JavaScript(简称JS) 实现显示与隐藏

    JavaScript   JavaScript简称JS.JS是脚本语言,它是一种轻量级的编程语言,是可以插入HTML页面的编程代码,几乎所有现代浏览器都是支持的. 理论老师不行,我就抄袭手册上的一些关 ...

  7. html2canvas+Canvas2Image分享海报功能踩坑

    首先需要 import html2canvas from 'html2canvas'; import {Canvas2Image} from '../../assets/js/plug/canvas2 ...

  8. wireshark 抓usb包

    https://www.freebuf.com/articles/system/96216.html https://blog.csdn.net/shiailan/article/details/97 ...

  9. TCP/IP超详细总结

    网络的基础知识 一.协议 1.简介: 在计算机网络与信息通信领域里,人们经常提及“协议”一词.互联网中常用的具有代表性的协议有IP.TCP.HTTP等.而LAN(局域网)中常用的协议有IPX/SPX” ...

  10. js 字符串格式化为时间格式

    首先介绍一下我遇到的坑,找了几个关于字符串转时间的,他们都可以就我用的时候不行. 我的原因,我的字符串是MYSQL拿出来的不是标准的时间格式,是不会转成功的. 解决思路:先将字符串转为标准时间格式的字 ...