@echo off setlocal enabledelayedexpansion :: ============================================================ :: Професионален инструмент за почистване на Windows :: Version: 2.0 :: Author: System Optimizer :: ============================================================ title Windows System Cleaner - Professional Tool color 0E :: Проверка за администраторски права net session >nul 2>&1 if %errorLevel% neq 0 ( color 0C echo ============================================================ echo ГРЕШКА: Липсват администраторски права! echo ============================================================ echo. echo Моля, стартирайте скрипта с "Run as Administrator" echo (Кликнете с десен бутон върху файла) echo. pause exit /b 1 ) :: Създаване на лог файл set LOGFILE=%userprofile%\Desktop\Windows_Cleaner_Log_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt set LOGFILE=%LOGFILE: =0% :: Изчисляване на свободното място преди почистване call :GetFreeSpace "BEFORE" set FREE_BEFORE=%FREE_SPACE% cls echo ============================================================ echo. echo WINDOWS SYSTEM CLEANER - PROFESSIONAL TOOL echo. echo ============================================================ echo. echo Дата: %date% echo Час: %time% echo Лог файл: %LOGFILE% echo. echo ============================================================ echo. echo Изчисляване на свободното място... echo. echo Свободно място ПРЕДИ почистване: %FREE_BEFORE% echo. echo ============================================================ echo. echo Изберете режим на работа: echo. echo [1] Стандартно почистване (Препоръчително) echo [2] Пълно почистване (Включва System Restore точки) echo [3] Само преглед (Какво ще бъде изтрито) echo [4] Изход echo. choice /c 1234 /n /m "Вашият избор [1-4]: " if errorlevel 4 exit /b 0 if errorlevel 3 goto :PreviewMode if errorlevel 2 goto :FullClean if errorlevel 1 goto :StandardClean :StandardClean set CLEAN_MODE="STANDARD" goto :StartClean :FullClean set CLEAN_MODE="FULL" goto :StartClean :PreviewMode echo. echo ============================================================ echo ПРЕГЛЕД НА ФАЙЛОВЕТЕ ЗА ИЗТРИВАНЕ echo ============================================================ echo. echo Файлове в Prefetch: dir /s /b %SystemRoot%\Prefetch\*.pf 2>nul | find /c ".pf" echo. echo Файлове в Windows Temp: dir /s /b C:\Windows\Temp\*.* 2>nul | find /c "\" echo. echo Файлове в User Temp: dir /s /b %temp%\*.* 2>nul | find /c "\" echo. echo DNS Cache ще бъде изчистен if /i "%CLEAN_MODE%"=="FULL" echo System Restore точки ще бъдат изтрити echo. pause goto :StandardClean :StartClean ( echo ============================================================ echo WINDOWS CLEANER LOG - %date% %time% echo ============================================================ echo. echo Режим: %CLEAN_MODE% echo. ) >> "%LOGFILE%" cls echo ============================================================ echo. echo WINDOWS SYSTEM CLEANER - ПРОФЕСИОНАЛНА ВЕРСИЯ echo. echo ============================================================ echo. echo Лог файлът се записва на Desktop echo. echo ============================================================ echo. echo [*] Започване на почистването... (%time%) echo. echo ============================================================ :: 1. DNS Cache echo [1/8] Изчистване на DNS кеш... ipconfig /flushdns >nul 2>&1 if %errorLevel% equ 0 ( echo [УСПЕХ] DNS кешът е изчистен успешно echo [1/8] УСПЕХ - DNS Cache изчистен >> "%LOGFILE%" ) else ( echo [ГРЕШКА] Проблем с изчистването на DNS кеша echo [1/8] ГРЕШКА - DNS Cache >> "%LOGFILE%" ) :: 2. Prefetch echo [2/8] Почистване на Prefetch папка... del /q /f /s %SystemRoot%\Prefetch\*.* 2>nul echo [УСПЕХ] Prefetch файловете са изтрити echo [2/8] УСПЕХ - Prefetch изчистен >> "%LOGFILE%" :: 3. Windows Temp echo [3/8] Почистване на системния Temp... del /q /f /s C:\Windows\Temp\*.* 2>nul for /d %%i in (C:\Windows\Temp\*) do rd /s /q "%%i" 2>nul echo [УСПЕХ] Системният Temp е изчистен echo [3/8] УСПЕХ - Windows Temp изчистен >> "%LOGFILE%" :: 4. User Temp echo [4/8] Почистване на потребителския Temp... del /q /f /s %temp%\*.* 2>nul for /d %%i in (%temp%\*) do rd /s /q "%%i" 2>nul echo [УСПЕХ] Потребителският Temp е изчистен echo [4/8] УСПЕХ - User Temp изчистен >> "%LOGFILE%" :: 5. Internet Cache echo [5/8] Почистване на Internet кеш... del /q /f /s "%userprofile%\AppData\Local\Microsoft\Windows\INetCache\*.*" 2>nul rd /s /q "%userprofile%\AppData\Local\Microsoft\Windows\INetCache" 2>nul echo [УСПЕХ] Internet кешът е изчистен echo [5/8] УСПЕХ - Internet Cache изчистен >> "%LOGFILE%" :: 6. Windows Update Cache echo [6/8] Почистване на Windows Update кеш... del /q /f /s "C:\Windows\SoftwareDistribution\Download\*.*" 2>nul for /d %%i in ("C:\Windows\SoftwareDistribution\Download\*") do rd /s /q "%%i" 2>nul echo [УСПЕХ] Windows Update кешът е изчистен echo [6/8] УСПЕХ - Windows Update Cache изчистен >> "%LOGFILE%" :: 7. Recycle Bin echo [7/8] Изпразване на Кошчето за текущия потребител... rd /s /q %systemdrive%\$Recycle.Bin\%username% 2>nul echo [УСПЕХ] Кошчето е изпразнено echo [7/8] УСПЕХ - Recycle Bin изчистен >> "%LOGFILE%" :: 8. System Restore Points (само при пълен режим) if /i "%CLEAN_MODE%"=="FULL" ( echo [8/8] Изтриване на старите System Restore точки... vssadmin delete shadows /all /quiet >nul 2>&1 echo [УСПЕХ] Старите restore точки са изтрити echo [8/8] УСПЕХ - System Restore Points изтрити >> "%LOGFILE%" ) else ( echo [8/8] Пропуснато - System Restore точки (не е избран FULL режим) echo [8/8] ПРОПУСНАТО - System Restore Points >> "%LOGFILE%" ) :: Изчисляване на свободното място след почистване call :GetFreeSpace "AFTER" set FREE_AFTER=%FREE_SPACE% :: Изчисляване на освободеното място (байтове) set FREE_BEFORE_CLEAN=%FREE_BEFORE:,=% set FREE_AFTER_CLEAN=%FREE_AFTER:,=% set /a FREED_SPACE=%FREE_AFTER_CLEAN% - %FREE_BEFORE_CLEAN% :: Конвертиране в GB/MB set FREED_GB=%FREED_SPACE:~0,-9% if "!FREED_GB!"=="" set FREED_GB=0 set FREED_MB=%FREED_SPACE:~0,-6% if "!FREED_MB!"=="" set FREED_MB=0 echo. echo ============================================================ echo РЕЗУЛТАТИ ОТ ПОЧИСТВАНЕТО echo ============================================================ echo. echo Свободно място преди: %FREE_BEFORE% echo Свободно място след: %FREE_AFTER% echo. if %FREED_SPACE% gtr 1073741824 ( set /a FREED_GB_DISP=%FREED_SPACE%/1073741824 echo ^>^> Освободени: !FREED_GB_DISP! GB ^<^< ) else if %FREED_SPACE% gtr 1048576 ( set /a FREED_MB_DISP=%FREED_SPACE%/1048576 echo ^>^> Освободени: !FREED_MB_DISP! MB ^<^< ) else ( echo ^>^> Освободени: %FREED_SPACE% байта ^<^< ) echo. echo ============================================================ echo Статус: ПОЧИСТВАНЕТО ПРИКЛЮЧИ УСПЕШНО! echo ============================================================ echo. echo Лог файлът е запазен на Desktop echo. echo Препоръчва се рестартиране на компютъра за най-добри резултати. echo. echo ============================================================ ( echo. echo ============================================================ echo РЕЗУЛТАТИ ОТ ПОЧИСТВАНЕТО echo ============================================================ echo Свободно място преди: %FREE_BEFORE% echo Свободно място след: %FREE_AFTER% echo Освободено място: %FREED_SPACE% байта echo ============================================================ ) >> "%LOGFILE%" echo. pause exit /b 0 :: ============================================================ :: Функция за изчисляване на свободното място :: ============================================================ :GetFreeSpace for /f "tokens=3" %%a in ('dir %systemdrive%\ 2^>nul ^| find "bytes free"') do set FREE_SPACE=%%a exit /b 0