31

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

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

6 回答 6

56

我遇到过类似的问题,但发现更多。

问题

我一直在尝试关闭设置了自己的窗口标题的 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在流程属性中四处寻找,以确保您的过滤器正确。Windows 8 为您带来的这个问题。

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

title "CMD with custom title"

taskkill /F /FI "WindowTitle eq  Administrator:  \"CMD with custom title\"" /T
于 2013-03-14T11:51:48.047 回答
7

诀窍是命名 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
于 2018-07-24T16:15:49.260 回答
2

我猜这个任务在你的 windows server 上运行。如果标题中包含“Administrator:”,则不能通过 WindowTitle 等方式杀死任务。

你应该使用这个:这是我的杀手.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
于 2016-11-17T11:24:30.333 回答
1

taskkill /F /FI "WindowTitle eq Apache 8184"

于 2017-05-11T09:52:38.920 回答
0

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

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

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

于 2014-09-10T17:00:51.853 回答
0

迟到的答案(4yo),但是当您知道只有一部分进程名称使用 WMIC的. 这是一个名为
的示例find和一个进程:kill"Administrator: My Window Title"

WMIC PROCESS WHERE "NAME LIKE '%Administrator: My Window Title%'" CALL TERMINATE
于 2018-11-24T17:35:39.313 回答