應用場景: 當前用戶會話中打開了多個窗口,需要關閉其中某個標題欄包含指定內容的窗口。比如,打開了多個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
)