taskkill标题名称中的窗口空间

时间:2012-06-08 11:46:31

标签: windows batch-file cmd

我正在尝试在控制台窗口上运行taskkill,该窗口的标题中包含空格。 如何将此窗口标题传递给taskkill。 我尝试过以下方法:

taskkill /fi "WINDOWTITLE eq Administrator: My Window Title"

6 个答案:

答案 0 :(得分:38)

我遇到了类似的问题,但发现了一些问题。

问题

我一直在尝试关闭已设置自己的窗口标题的CMD窗口(以管理员身份运行)。因此,以管理员身份运行CMD并输入:

title CMD with custom title

经过多次讨论之后,以下命令向我显示设置窗口标题会在标题前放置一个前导空格! (不知道为什么。)

c:\>tasklist /V /FI "WindowTitle eq Administrator*"

Image Name  PID Session Name Session# Mem Usage Status  User Name       CPU Time Window Title
========== ==== ============ ======== ========= ======= =============== ======== =====================================
cmd.exe    4304 Console             1   2,492 K Running MACHINE\My Name  0:00:00 Administrator:  CMD with custom title
                                                                                               
(scroll )                                                                               extra space

解决方案

所以要杀死这个过程:

taskkill /F /FI "WindowTitle eq  Administrator:  CMD with custom title" /T
                                               
                                             bingo
  • /F - 使用武力。
  • /T - 杀死子进程。

如果您以类似的方式敲打头部,我建议您使用tasklist在流程属性中查找,以确保您的过滤器正确。这个ballache由Windows 8带给你。

注意:如果标题包含引号,只需转义嵌套的标题:

title "CMD with custom title"

taskkill /F /FI "WindowTitle eq  Administrator:  \"CMD with custom title\"" /T

答案 1 :(得分:1)

我猜这个任务在你的Windows服务器上运行。如果标题包含“管理员:”,则无法通过WindowTitle等于终止任务。

你应该使用这个:这是我的killer.bat。 SEARCH_PARAMETER =你要杀死的标题

@echo off
            for /f "tokens=2 delims=," %%a in ('
tasklist /fi "imagename eq cmd.exe" /v /fo:csv /nh 
^| findstr /r /c:".*SEARCH_PARAMETER[^,]*$" ') do taskkill /pid %%a

答案 2 :(得分:1)

诀窍是命名cmd进程,然后通过调用您提供的名称将其杀死: 以下是启动6个并行进程的过程,您可以杀死任何一个选择。

start "cmd001" cmd.exe
start "cmd002" cmd.exe
start "cmd003" cmd.exe
start "cmd004" cmd.exe
start "cmd005" cmd.exe
start "cmd 006" cmd.exe

::终止所需的进程,例如cmd005

taskkill /F /FI "WINDOWTITLE eq cmd005" /T

::杀死名称中带有空格的进程,例如cmd 006

taskkill /F /FI "WINDOWTITLE eq cmd 006" /T

答案 3 :(得分:0)

我正在使用AutoIt启动cmd shell窗口,关于使用tasklist的提示确实有帮助。我已经尝试了双倍空格,但是AutoIt的Run()命令以tasklist / taskkill无法看到窗口标题的方式创建了cmd.exe shell。

如果我使用循环或AutoIt的WinKill()/ WinClose()和cmd提示符的窗口标题,那么AutoIt本身可以关闭窗口,但我的cmd提示文件只看到c:\ windows \ system32 \ cmd作为窗口标题。

在这种情况下,我能够使用AutoIt来杀死窗口而不是批处理脚本。

答案 4 :(得分:0)

taskkill / F / FI" WindowTitle eq Apache 8184"

答案 5 :(得分:0)

最新答案(4yo),但是当您仅知道进程名称的一部分时,最好使用杀死 old WMIC的方法来杀死该进程。
这是findkill一个名为"Administrator: My Window Title"的进程的示例:

WMIC PROCESS WHERE "NAME LIKE '%Administrator: My Window Title%'" CALL TERMINATE