了解是否有多个具有相同名称的控制台进程并执行任务杀死它们



我在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
==>

最新更新