@echo off title RFCP Real-time Resource Monitor setlocal EnableDelayedExpansion echo ============================================ echo RFCP Real-time Resource Monitor echo ============================================ echo Press Ctrl+C to stop echo ============================================ echo. echo TIME CPU%% MEM(MB) PROCS FREE_RAM(MB) echo ---------- ----- ------- ----- ------------ :loop :: Get current time set T=%time:~0,8% :: Count RFCP processes and their memory set PROC_COUNT=0 set TOTAL_MEM=0 for /f "skip=3 tokens=5 delims= " %%m in ('tasklist /FI "IMAGENAME eq rfcp-server.exe" 2^>nul') do ( set /a PROC_COUNT+=1 set MEM_STR=%%m set MEM_STR=!MEM_STR:,=! set MEM_STR=!MEM_STR: =! if "!MEM_STR!" NEQ "" ( set /a TOTAL_MEM+=!MEM_STR! 2>nul ) ) set /a TOTAL_MEM_MB=TOTAL_MEM/1024 2>nul :: Get free RAM (PowerShell — wmic deprecated in Win11) for /f %%a in ('powershell -NoProfile -Command "(Get-CimInstance Win32_OperatingSystem).FreePhysicalMemory" 2^>nul') do ( set /a FREE_RAM=%%a/1024 2>nul ) :: Get CPU load (PowerShell — wmic deprecated in Win11) for /f %%a in ('powershell -NoProfile -Command "(Get-CimInstance Win32_Processor).LoadPercentage" 2^>nul') do ( set CPU=%%a ) :: Display echo %T% %CPU%%% %TOTAL_MEM_MB% %PROC_COUNT% %FREE_RAM% :: Wait 2 seconds timeout /t 2 /nobreak >nul goto loop