Abordagem baseada em títulos de janela
@ techie007 sugeriu a eliminação do explorer.exe com o título da janela N/A .
Comando
for /f "tokens=2,10" %%p in ('tasklist /nh /v /fi "imagename eq explorer.exe"') do if "%%q"=="N/A" taskkill /f /pid %%p
Como funciona
-
tasklist /nh /v /fi "imagename eq explorer.exe"lista com verbosidade todos os processos com nome de imagemexplorer.exe. -
for /f "tokens=2,10" %%p in ('COMMAND1') do COMMAND2executa
COMMAND1. Para cada linha de saída, ele define as variáveis%%pe%%qpara o segundo e décimo "token" (delimitado por espaço) e executaCOMMAND2.No caso de
taskkill /v,%%pagora contém o PID e%%q(início do) título da janela. -
if "%%q"=="N/A" taskkill /f /pid %%pverifica se o título da janela éN/A.Se sim, encerra o processo com
taskkill.
Abordagem baseada no uso de memória
@ A Syntech apontou que isso não é confiável para o Windows Explorer, mas nos programas, o processo principal sempre tem o maior uso de memória.
Comando
for /f "tokens=2" %%p in ('tasklist /nh /fi "imagename eq explorer.exe" ^| sort /+65') do @set explorerpid=%%p
taskkill /f /pid %explorerpid%
Como funciona
-
tasklist /nh /fi "imagename eq explorer.exe"lista todos os processos com nome de imagemexplorer.exe. -
sort /+65classifica a saída anterior, começando com o 65º caractere (onde o uso de mem começa). -
for /f "tokens=2" %%p in ('COMMAND') do @set explorerpid=%%pconjuntosexplorerpidpara a segunda entrada (tokens=2) - delimitada por espaços - de cada linha da saída deCOMMAND, que é o PID correspondente. -
Como a saída de
tasklistfoi classificada,explorerpidcontém o PID reivindicado etaskkillencerra o processo.