Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.msdos.batch    |    Fun with MS-DOS batch files    |    42,547 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 42,469 of 42,547    |
|    Marion to All    |
|    What is slowing down my WIndows PC & wha    |
|    01 Sep 25 15:56:55    |
   
   XPost: alt.comp.os.windows-10, alt.comp.os.windows-11   
   From: marion@facts.com   
      
    @echo off   
    setlocal   
    REM 20250901 cpu.bat rev 1.5 - what's slowing things down & how to kill it   
      
    :: ---- Config ----   
    set "EDITOR_PATH=C:\app\editor\txt\vim\vim82\gvim.exe"   
      
    :: ---- Elevation check ----   
    net session >nul 2>&1   
    if %errorlevel% neq 0 (   
    echo Requesting administrator privileges...   
    powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb   
   RunAs"   
    exit /b   
    )   
      
    :: ---- Timestamp and log file ----   
    for /f %%I in ('powershell -NoProfile -Command "(Get-Date).ToSt   
   ing('yyyy-MM-dd_HHmmss')"') do set "TS=%%I"   
    set "LOGFILE=%TEMP%\cpu_diag_%TS%.log"   
      
    :: ---- Header ----   
    >> "%LOGFILE%" echo === Diagnostic Run: %DATE% %TIME% on %COMPUTERNAME% ===   
    >> "%LOGFILE%" echo.   
      
    :: ---- CPU usage (filtered) ----   
    >> "%LOGFILE%" echo === CPU Usage (WMIC snapshot) ===   
    wmic path Win32_PerfFormattedData_PerfProc_Process get Name,Per   
   entProcessorTime /format:csv | more >> "%LOGFILE%"   
      
    :: ---- Memory usage (raw) ----   
    >> "%LOGFILE%" echo.   
    >> "%LOGFILE%" echo === Memory Usage (WMIC snapshot) ===   
    wmic process get Name,ProcessId,WorkingSetSize /format:csv | more >>   
   "%LOGFILE%"   
      
    :: ---- Unresponsive apps ----   
    >> "%LOGFILE%" echo.   
    >> "%LOGFILE%" echo === Unresponsive Apps ===   
    tasklist /v | findstr /i "Not Responding" >> "%LOGFILE%"   
      
    :: ---- Top CPU consumers (excluding Idle/System/_Total) ----   
    >> "%LOGFILE%" echo.   
    >> "%LOGFILE%" echo === Top 10 CPU Consumers (excluding Idle/System/_Total)   
   ===   
    powershell -NoProfile -Command ^   
    "Get-Process | Where-Object { $_.Name -notin @('Idle','System','_Total') }   
   | Sort-Object CPU -Descending | Select-Object -First 10 Name,Id,   
   {N='CPU';E={[math]::Round($_.CPU,2)}} | Format-Table -AutoSize | Out-String   
   -Width 500" ^   
    >> "%LOGFILE%"   
      
    :: ---- Top Memory consumers ----   
    >> "%LOGFILE%" echo.   
    >> "%LOGFILE%" echo === Top 10 Memory Consumers ===   
    powershell -NoProfile -Command ^   
    "Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10   
   Name,Id,@{N='Memory(MB)';E={[int]($_.WorkingSet/1MB)}} | Format-Table   
   -AutoSize | Out-String -Width 500" ^   
    >> "%LOGFILE%"   
      
    :: ---- Resource hogs (CPU > 10 or Memory > 500MB) ----   
    >> "%LOGFILE%" echo.   
    >> "%LOGFILE%" echo === Potential Resource Hogs (CPU > 10 or Memory > 500MB)   
   ===   
    powershell -NoProfile -Command ^   
    "$procs = Get-Process | Where-Object { $_.CPU -gt 10 -or $_.WorkingSet -gt   
   500MB }; $procs | Select-Object Name,Id,@{N='CPU';E={[math]::Rou   
   d($_.CPU,2)}},@{N='Memory(MB)';E={[int]($_.WorkingSet/1MB)}} | Format-Table   
   -AutoSize | Out-String -Width 500" ^   
    >> "%LOGFILE%"   
      
    :: ---- Suggested kill commands ----   
    >> "%LOGFILE%" echo.   
    >> "%LOGFILE%" echo === Suggested Manual Kill Commands ===   
    powershell -NoProfile -Command ^   
    "$procs = Get-Process | Where-Object { $_.CPU -gt 10 -or $_.WorkingSet -gt   
   500MB }; $procs | ForEach-Object { \"taskkill /PID $_.Id /F :: $_.Name   
   (CPU=$($_.CPU), Mem=$([int]($_.WorkingSet/1MB))MB)\" }" ^   
    >> "%LOGFILE%"   
      
    :: ---- Open log in editor or fallback to console ----   
    if exist "%EDITOR_PATH%" (   
    start "" "%EDITOR_PATH%" "%LOGFILE%"   
    ) else (   
    echo Editor not found at %EDITOR_PATH%. Viewing in console...   
    type "%LOGFILE%" | more   
    )   
      
    endlocal   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca