Windowsbatch file – taskkill如果窗口标题包含文本

我想编写一个简单的batch file来杀死包含窗口标题中的某些文本的进程。 现在我有:

taskkill /fi "Windowtitle eq XXXX*" /im cmd.exe 

除了我想要做的就是在标题的开头和结尾使用通配符。 所以像这样:

 taskkill /fi "Windowtitle eq \*X*" /im cmd.exe 

但我试过这个,它不工作。 有什么我失踪或这是不可能的?

Solutions Collecting From Web of "Windowsbatch file – taskkill如果窗口标题包含文本"

不,通配符在过滤器的开始处是不允许的。

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

这将以csv和详细格式(这将包括窗口标题作为输出中的最后一个字段)检索任务列表。

该列表由具有正则表达式的findstr过滤,该正则表达式将搜索最后一个字段中的指示文本( X )。

如果任何行与过滤器匹配,则for将标记它,检索将在taskkill中使用的第二个字段(PID)以结束该过程。

在特殊情况下,您已经从批处理文件中自己启动了命令窗口,可以使用该命令指定窗口标题

 START MyWindowTitle c:/MyProcess.exe 

这样就很容易再次使用这个过程来终止这个过程

 taskkill /fi "WindowTitle eq MyWindowTitle"