【发布时间】:2021-02-10 16:56:37
【问题描述】:
我有一个.cmd 文件,我调用它来通过以下方式打开Command Prompt 的多个实例:
launcher.cmd -fs
launcher.cmd -tds
launcher.cmd -fsd
每个命令都会打开一个新的命令提示符。
所以我想做的是创建一个批处理文件来自动关闭所有打开的Command Prompt,而不是手动执行。
【问题讨论】:
我有一个.cmd 文件,我调用它来通过以下方式打开Command Prompt 的多个实例:
launcher.cmd -fs
launcher.cmd -tds
launcher.cmd -fsd
每个命令都会打开一个新的命令提示符。
所以我想做的是创建一个批处理文件来自动关闭所有打开的Command Prompt,而不是手动执行。
【问题讨论】:
小心:您可能会杀死比您想要的更多的进程:
taskkill /IM cmd.exe
您可以添加额外的过滤器:
taskkill /IM cmd.exe /FI "WINDOWTITLE eq launcher*"
使用
tasklist /FI "imagename eq cmd.exe " /V
了解哪些 cmd.exe 进程将被 taskkill-ed
您可以添加 /F 参数来强制关闭进程,但我只会在进程未响应正常请求时使用它。
【讨论】:
请注意,为什么接受 Rene 的回答可能不起作用。我从 cmd 文件启动我的应用程序,例如
start "" my.exe -my -args
my.exe 是一个控制台应用程序,它看起来像我想杀死的 cmd 窗口,但进程名称不是 cmd.exe (!),我必须使用类似的命令
taskkill /IM my.exe
所以在某些情况下检查真正的进程名称是值得的,例如在 Windows 任务管理器中。
【讨论】:
TASKKILL /F /IM cmd.exe /T
很好的解决方案
【讨论】: