taskkill 窗口标题中的通配符
Wildcard in taskkill windowtitle
当我想使用 taskkill 关闭以下两个(虚构的...)应用程序时...
...我会使用 taskkill /FI "WINDOWTITLE eq Hello*"
.
但是这两个怎么样:
taskkill /FI "WINDOWTITLE eq * wine"
给我 FEHLER: Der Suchfilter wurde nicht erkannt.,可以翻译为 ERROR: The search filter could not be recognized .
那么,如何在开头使用通配符进行过滤呢?
开头的通配符不起作用。您需要主动加入 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
为无header,然后在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
)
只需添加一个包含标题的可能图像名称列表,它只会按照下面的方式循环这些名称,而不会触及其他 processes/tasks:
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 关闭以下两个(虚构的...)应用程序时...
...我会使用 taskkill /FI "WINDOWTITLE eq Hello*"
.
但是这两个怎么样:
taskkill /FI "WINDOWTITLE eq * wine"
给我 FEHLER: Der Suchfilter wurde nicht erkannt.,可以翻译为 ERROR: The search filter could not be recognized .
那么,如何在开头使用通配符进行过滤呢?
开头的通配符不起作用。您需要主动加入 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
为无header,然后在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
)
只需添加一个包含标题的可能图像名称列表,它只会按照下面的方式循环这些名称,而不会触及其他 processes/tasks:
tasklist /fi "imagename eq notepad.exe"
tasklist /fi "imagename eq calc.exe"
tasklist /fi "imagename eq winword.exe"
tasklist /fi "imagename eq excel.exe"