CMD /im (taskkill) 是啥?

Posted

技术标签:

【中文标题】CMD /im (taskkill) 是啥?【英文标题】:CMD what does /im (taskkill)?CMD /im (taskkill) 是什么? 【发布时间】:2014-02-02 22:06:19 【问题描述】:

我刚刚阅读了以下命令:

taskkill /f /im something.exe

我读到/f 强制关闭任务,但/im 做了什么?

【问题讨论】:

3 次投反对票而没有人告诉他为什么?汉斯,您在这里被否决了,因为您没有对该主题进行任何研究。正如您在答案中看到的那样,您需要做的只是一点点研究,您就会找到答案。在 SE 上,您应该在询问之前进行研究。 好的,虽然我已经解决了但我只是在错误的关键字下搜索,我尝试再次搜索它! @Michael 没有人告诉他为什么投了 3 票? 是的,我讨厌这样。那些人认为它会达到什么目的?它只会吓跑新人。 @michaelhouse 你很棒,保罗·桑德斯也很棒。 【参考方案1】:

它告诉taskkill 下一个参数something.exe 是图像名称,也就是可执行文件名称

C:\>taskkill /?

TASKKILL [/S system [/U username [/P [password]]]]
          [/FI filter] [/PID processid | /IM imagename]  [/T] [/F]

Description:
    This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
    /S    system           Specifies the remote system to connect to.

    /U    [domain\]user    Specifies the user context under which the
                           command should execute.

    /P    [password]       Specifies the password for the given user
                           context. Prompts for input if omitted.

    /FI   filter           Applies a filter to select a set of tasks.
                           Allows "*" to be used. ex. imagename eq acme*

    /PID  processid        Specifies the PID of the process to be terminated.
                           Use TaskList to get the PID.

    /IM   imagename        Specifies the image name of the process
                           to be terminated. Wildcard '*' can be used
                           to specify all tasks or image names.

    /T                     Terminates the specified process and any
                           child processes which were started by it.

    /F                     Specifies to forcefully terminate the process(es).

    /?                     Displays this help message.

【讨论】:

感谢您的列表,但现在如果我也应该使用 /t 来执行任务杀死 explorer.exe,您让我感到不安。它有子进程吗? 如果我用任务管理器杀死一个任务,添加哪些参数? 使用 /T 杀死 taskmgr 不会杀死任何其他东西,除非您使用 TM 的文件 > 新任务选项来运行某些东西。 explorer.exe 上的 /T 是另一回事!您作为用户启动的任何内容很可能是 explorer.exe 的子项 不是,我是说我打开任务管理器杀死一个进程,它是怎么被杀死的? 结束进程为 /F,进程树为 /F /T。通过在空白记事本文档中绑定某些内容可以看出,它强制关闭。正常的关闭过程会打开“保存?”迅速的。强制关闭无视进程可能为清理所做的任何事情,并简单地终止它。 taskmgr 可能会使用 PID,以免杀死同名可执行文件的所有实例,只杀死有问题的单个实例。【参考方案2】:

见the doc:它将使用可执行文件something.exe关闭所有正在运行的任务,或多或少类似于linux'killall

【讨论】:

【参考方案3】:

如果您在命令行键入可执行文件名称和/? 开关,通常会提供帮助信息。使用taskkill /? 这样做会提供以下内容,例如:

TASKKILL [/S system [/U username [/P [password]]]]
          [/FI filter] [/PID processid | /IM imagename]  [/T] [/F]

Description:
    This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
    /S    system           Specifies the remote system to connect to.

    /U    [domain\]user    Specifies the user context under which the
                           command should execute.

    /P    [password]       Specifies the password for the given user
                           context. Prompts for input if omitted.

    /FI   filter           Applies a filter to select a set of tasks.
                           Allows "*" to be used. ex. imagename eq acme*

    /PID  processid        Specifies the PID of the process to be terminated.
                           Use TaskList to get the PID.

    /IM   imagename        Specifies the image name of the process
                           to be terminated. Wildcard '*' can be used
                           to specify all tasks or image names.

    /T                     Terminates the specified process and any
                           child processes which were started by it.

    /F                     Specifies to forcefully terminate the process(es).

    /?                     Displays this help message.

Filters:
    Filter Name   Valid Operators           Valid Value(s)
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Image name
    PID           eq, ne, gt, lt, ge, le    PID value
    SESSION       eq, ne, gt, lt, ge, le    Session number.
    CPUTIME       eq, ne, gt, lt, ge, le    CPU time in the format
                                            of hh:mm:ss.
                                            hh - hours,
                                            mm - minutes, ss - seconds
    MEMUSAGE      eq, ne, gt, lt, ge, le    Memory usage in KB
    USERNAME      eq, ne                    User name in [domain\]user
                                            format
    MODULES       eq, ne                    DLL name
    SERVICES      eq, ne                    Service name
    WINDOWTITLE   eq, ne                    Window title

    NOTE
    ----
    1) Wildcard '*' for /IM switch is accepted only when a filter is applied.
    2) Termination of remote processes will always be done forcefully (/F).
    3) "WINDOWTITLE" and "STATUS" filters are not considered when a remote
       machine is specified.

Examples:
    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 domain\username /FI "USERNAME ne NT*" /IM *
    TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

您还可以在Microsoft TechNet Command-Line Reference 中找到此信息以及大多数其他命令行实用程序的文档

【讨论】:

【参考方案4】:

它允许您根据镜像名称终止任务,例如 taskkill /im iexplore.exe 或 taskkill /im notepad.exe

【讨论】:

这是正确的答案,其他人只是忽略了它的细节。 我认为有些人想知道的是“图像名称到底是什么?”它是 exe 名称和扩展名,没有 exe 的文件路径。【参考方案5】:

im“图像进程名称” 例子/f /im notepad.exe指定kill image进程名(程序)notepad.exe

【讨论】:

以上是关于CMD /im (taskkill) 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

托盘程序要点汇总

cmd下命令提示符下杀进程主要有三种方法

如何用CMD命令结束一个进程和打开一个程序?

在 Inno Setup 中使用“taskkill /f /im”在(重新)安装之前终止进程

很多个cmd一直在运行是啥意思?

如何在使用 TASKKILL /f /t /im explorer.exe 时保持批处理文件运行?