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. jquery的ajax方法使用application/json出现400错误码的解决方案

    400说明是客户端错误,将contentType默认的application/x-www-form-urlencoded改成application/json就出现错误,说明传输的数据不是JSON. 解 ...

  2. Peter and Snow Blower CodeForces - 613A (点到线段距离)

    大意: 给定多边形, 给定点$P$, 求一个以$P$为圆心的最小的圆环包含整个多边形. #include <iostream> #include <cmath> #define ...

  3. 公司SQL考核及小结(Oracle)

    一.数据库初始化脚本: Create TABLE HAND_CUSTOMERS ( CUSTOMERS_NO ), CUSTOMERS_NAME ), CUSTOMERS_GENDER ), CUST ...

  4. 第二章 单表查询 T-SQL语言基础(3)

    单表查询(3) 2.6 处理字符数据 字符数据的查询处理,内容包括:类型,排序规则,运算符和函数,以及模式匹配. 2.6.1 数据类型 SQL Server支持两种字符数据类型----普通字符和Uni ...

  5. python发起post请求获取json数据使用requests方法

    最普通的答案 我一直就觉得GET和POST没有什么除了语义之外的区别,自打我开始学习Web编程开始就是这么理解的 . 可能很多人都已经猜到了答案是: 1.GET 使用URL或Cookie传参.而POS ...

  6. QT多线程同步之QWaitcondition

    使用到多线程,无可避免的会遇到同步问题,qt提供几种同步线程的方法,在这里讲一下QWaitcondition的简单使用. 一.QWaitcondition,是通过一个线程达到某种条件来唤起另一个线程来 ...

  7. Android系统修改之展讯平台的Mms不能发送西班牙特殊字符ú的问题

    在测试中, 发现在发送短信的时候特殊字符ú不能发送, 但是输入框可以输入并正常显示, 查看代码之后, 发现是展讯在字符转换的时候出现的问题 frameworks/base/telephony/java ...

  8. python CGI环境搭建

    本文web服务器使用的为apache. 1. 安装apache yum install -y httpd 2. 配置apache 修改apache配置文件/etc/httpd/conf/httpd.c ...

  9. orm之peewee

    peewee是一款orm框架,为什么选择peewee,是因为它比较简单和Django比较类似,而且还有一个async-peewee,可以进行异步化. 如何定义model和生成表 ''' 我们要定义两张 ...

  10. Jenkins+GitHub 项目环境搭建和发布脚本(二)

    Jenkins+gitHub项目搭建配置 项目发布脚本 profilesScript.sh (支持不同环境配置文件) #!/bin/bash ACTIVE=$ JENKINS_PATH=/var/li ...