I know I can do 'wmic process list brief' to display a list of processes. Is there a way to view only the top 10 processes using the most memory?
@echo off
setlocal EnableDelayedExpansion
(for /F "skip=1 tokens=1,2" %%a in ('wmic process get name^,workingsetsize') do (
set "size= %%b"
echo !size:~-10! %%a
)) > wmic.txt
set i=0
for /F "skip=1 delims=" %%a in ('sort /R wmic.txt') do (
echo %%a
set /A i+=1
if !i! equ 10 goto :end
)
:end
del wmic.txt
Output example:
96931840 iexplore.exe
82161664 explorer.exe
42319872 svchost.exe
33656832 svchost.exe
31469568 dwm.exe
26943488 iexplore.exe
25690112 SearchIndexer.exe
18550784 svchost.exe
17002496 taskhostex.exe
16343040 svchost.exe