应用场景: 当前用户会话中打开了多个窗口,需要关闭其中某个标题栏包含指定内容的窗口。比如,打开了多个Java应用程序,而只想关闭Apache JMeter。注:这里的关闭是指通过taskkill杀死相应的进程。
脚本: @echo off
for /f "tokens=2,10,11 delims= " %%l in ('tasklist /v') do (
echo "%%l - %%m"
if "%%m%%n" == "Apache JMeter" taskkill /f /PID %%m
if "%%m" == "PACS.jmx" taskkill /f /PID %%l
)
说明:
1. tasklist /v 会将当前运行的进程的详细信息打印出来,其中包含“窗口标题”。
2. for /f "tokens=2,10,11 delims= " 将tasklist /v打印出的每条记录通过空格分组并提出其中的第2,10,和11项
------下面是个有应用体会--------------------
1. 2, 10, 11, 会自动赋给 %%l, %%m, %%n变量
2. 我觉得正确代码是:
@echo off
for /f "tokens=2,10 delims= "%%l in ('tasklist /v') do (
if "%%m" == "要关闭的应用程序的标题" taskkill /f /PID %%l
)