我在cmd中使用:tasklist/FI"会话名称eq控制台"来获取正在运行的控制台进程列表。我需要知道是否有多个具有相同名称的进程并任务杀死它们感谢您的帮助
看看这个
终止所有同名进程
您需要计算命令输出中出现的每个图像名称tasklist
,请参阅下一个批处理脚本注释代码片段:
@ECHO OFF
SETLOCAL EnableExtensions
rem remove all variables with ? prefix (question mark)
for /F "tokens=1 delims==" %%G in ('2^>NUL set ?') do SET "%%~G="
rem count
for /F "skip=1 tokens=1 delims=," %%G in ('
tasklist /FI "SESSIONNAME eq Console" /FO csv
') do set /A "?%%~G+=1"
rem use counters
for /F "tokens=1,2 delims=?=" %%G in ('2^>NUL set ?') do (
if %%H GTR 1 (
rem next echo for debugging purposes
echo %%G process counter = %%H
if /I NOT "%%G"=="cmd.exe" (
rem taskkill command is merely displayed for debugging purposes
ECHO taskkill /IM %%G
) else (
rem needs more elaborated code to avoid killing the script itself
echo retain %%G
)
)
)
输出:
==> D:batSO37639505.bat
chrome.exe process counter = 4
taskkill /IM chrome.exe
cmd.exe process counter = 2
retain cmd.exe
iexplore.exe process counter = 3
taskkill /IM iexplore.exe
powershell_ise.exe process counter = 2
taskkill /IM powershell_ise.exe
==>