在taskkill windowtitle中的通配符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在taskkill windowtitle中的通配符相关的知识,希望对你有一定的参考价值。

当我想使用taskkill关闭以下两个(虚构的...)应用程序时......

Two hello-sayers

......我会用taskkill /FI "WINDOWTITLE eq Hello*"

但是这两个怎么样:

Alcoholic programs

taskkill /FI "WINDOWTITLE eq * wine"给我错误:无法识别搜索过滤器,无法将其翻译为错误:无法识别搜索过滤器。

那么,我怎样才能在开头使用通配符进行过滤?

答案

开头的通配符不起作用。您需要使用一些主动性来合并findstr

for /f "tokens=2 delims=," %%a in ('tasklist /fi "imagename eq notepad.exe" /v /fo:csv /nh ^| findstr /r "wine"') do taskkill /pid %%a

因此,我们在名称中使用wine搜索图像名称。使用/fo为csv格式,/nh为无头,然后在imagename中搜索字符串“wine”,然后在找到时按进程ID终止。

要不是图像名称,请执行以下操作:

for /f "tokens=2 delims=," %%a in ('tasklist /v /fo:csv /nh ^| findstr /r "wine"') do taskkill /pid %%a

编辑

至于杀死不正确任务的担忧:

@echo off
set "images=notepad.exe,calc.exe,winword.exe,excel.exe"
for %%i in (%images%) do (
   for /f "tokens=2 delims=," %%a in ('tasklist /fi "imagename eq %%i" /v /fo:csv /nh ^| findstr /r "wine"') do taskkill /pid %%a
)

只需添加一个包含标题的可能图像名称列表,它将只按以下方式循环,而不是触及其他进程/任务:

tasklist /fi "imagename eq notepad.exe"
tasklist /fi "imagename eq calc.exe"
tasklist /fi "imagename eq winword.exe"
tasklist /fi "imagename eq excel.exe"

以上是关于在taskkill windowtitle中的通配符的主要内容,如果未能解决你的问题,请参考以下文章

关于Struts2的通配方法转发重定向

Windows 批处理文件 - 如果窗口标题包含文本,则 taskkill

bat批量处理结束进程:杀毒软件是怎样做到不被终止的?比如我用taskkill /pid * 。或者

BZOJ-3507通配符匹配 DP + Hash

VB连接ACCESS数据库,使用 LIKE 通配符问题

在qt中最大化模式下设置windowtitle