taskkill标题名称中的窗口空间

Dar*_*Var 26 windows cmd batch-file

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

taskkill /fi "WINDOWTITLE eq Administrator: My Window Title"
Run Code Online (Sandbox Code Playgroud)

c24*_*24w 42

我有类似的问题,但发现了一点点.

问题

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

title CMD with custom title
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

所以要杀死这个过程:

taskkill /F /FI "WindowTitle eq  Administrator:  CMD with custom title" /T
                                               
                                             bingo
Run Code Online (Sandbox Code Playgroud)
  • /F - 使用武力.
  • /T - 杀死子进程.

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

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

title "CMD with custom title"

taskkill /F /FI "WindowTitle eq  Administrator:  \"CMD with custom title\"" /T
Run Code Online (Sandbox Code Playgroud)


Sho*_*esh 6

诀窍是命名 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
Run Code Online (Sandbox Code Playgroud)

:: 杀死你想要的进程,例如 cmd005

taskkill /F /FI "WINDOWTITLE eq cmd005" /T
Run Code Online (Sandbox Code Playgroud)

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

taskkill /F /FI "WINDOWTITLE eq cmd 006" /T
Run Code Online (Sandbox Code Playgroud)