Windows_Cleaner.bat
· 9.3 KiB · Batchfile
Ham
@echo off
setlocal enabledelayedexpansion
:: ============================================================
:: Професионален инструмент за почистване на Windows
:: Version: 2.0
:: Author: Федя Серафиев
:: ============================================================
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
| 1 | @echo off |
| 2 | setlocal enabledelayedexpansion |
| 3 | |
| 4 | :: ============================================================ |
| 5 | :: Професионален инструмент за почистване на Windows |
| 6 | :: Version: 2.0 |
| 7 | :: Author: Федя Серафиев |
| 8 | :: ============================================================ |
| 9 | |
| 10 | title Windows System Cleaner - Professional Tool |
| 11 | color 0E |
| 12 | |
| 13 | :: Проверка за администраторски права |
| 14 | net session >nul 2>&1 |
| 15 | if %errorLevel% neq 0 ( |
| 16 | color 0C |
| 17 | echo ============================================================ |
| 18 | echo ГРЕШКА: Липсват администраторски права! |
| 19 | echo ============================================================ |
| 20 | echo. |
| 21 | echo Моля, стартирайте скрипта с "Run as Administrator" |
| 22 | echo (Кликнете с десен бутон върху файла) |
| 23 | echo. |
| 24 | pause |
| 25 | exit /b 1 |
| 26 | ) |
| 27 | |
| 28 | :: Създаване на лог файл |
| 29 | 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 |
| 30 | set LOGFILE=%LOGFILE: =0% |
| 31 | |
| 32 | :: Изчисляване на свободното място преди почистване |
| 33 | call :GetFreeSpace "BEFORE" |
| 34 | set FREE_BEFORE=%FREE_SPACE% |
| 35 | |
| 36 | cls |
| 37 | echo ============================================================ |
| 38 | echo. |
| 39 | echo WINDOWS SYSTEM CLEANER - PROFESSIONAL TOOL |
| 40 | echo. |
| 41 | echo ============================================================ |
| 42 | echo. |
| 43 | echo Дата: %date% |
| 44 | echo Час: %time% |
| 45 | echo Лог файл: %LOGFILE% |
| 46 | echo. |
| 47 | echo ============================================================ |
| 48 | echo. |
| 49 | echo Изчисляване на свободното място... |
| 50 | echo. |
| 51 | echo Свободно място ПРЕДИ почистване: %FREE_BEFORE% |
| 52 | echo. |
| 53 | echo ============================================================ |
| 54 | echo. |
| 55 | echo Изберете режим на работа: |
| 56 | echo. |
| 57 | echo [1] Стандартно почистване (Препоръчително) |
| 58 | echo [2] Пълно почистване (Включва System Restore точки) |
| 59 | echo [3] Само преглед (Какво ще бъде изтрито) |
| 60 | echo [4] Изход |
| 61 | echo. |
| 62 | choice /c 1234 /n /m "Вашият избор [1-4]: " |
| 63 | |
| 64 | if errorlevel 4 exit /b 0 |
| 65 | if errorlevel 3 goto :PreviewMode |
| 66 | if errorlevel 2 goto :FullClean |
| 67 | if errorlevel 1 goto :StandardClean |
| 68 | |
| 69 | :StandardClean |
| 70 | set CLEAN_MODE="STANDARD" |
| 71 | goto :StartClean |
| 72 | |
| 73 | :FullClean |
| 74 | set CLEAN_MODE="FULL" |
| 75 | goto :StartClean |
| 76 | |
| 77 | :PreviewMode |
| 78 | echo. |
| 79 | echo ============================================================ |
| 80 | echo ПРЕГЛЕД НА ФАЙЛОВЕТЕ ЗА ИЗТРИВАНЕ |
| 81 | echo ============================================================ |
| 82 | echo. |
| 83 | echo Файлове в Prefetch: |
| 84 | dir /s /b %SystemRoot%\Prefetch\*.pf 2>nul | find /c ".pf" |
| 85 | echo. |
| 86 | echo Файлове в Windows Temp: |
| 87 | dir /s /b C:\Windows\Temp\*.* 2>nul | find /c "\" |
| 88 | echo. |
| 89 | echo Файлове в User Temp: |
| 90 | dir /s /b %temp%\*.* 2>nul | find /c "\" |
| 91 | echo. |
| 92 | echo DNS Cache ще бъде изчистен |
| 93 | if /i "%CLEAN_MODE%"=="FULL" echo System Restore точки ще бъдат изтрити |
| 94 | echo. |
| 95 | pause |
| 96 | goto :StandardClean |
| 97 | |
| 98 | :StartClean |
| 99 | ( |
| 100 | echo ============================================================ |
| 101 | echo WINDOWS CLEANER LOG - %date% %time% |
| 102 | echo ============================================================ |
| 103 | echo. |
| 104 | echo Режим: %CLEAN_MODE% |
| 105 | echo. |
| 106 | ) >> "%LOGFILE%" |
| 107 | |
| 108 | cls |
| 109 | echo ============================================================ |
| 110 | echo. |
| 111 | echo WINDOWS SYSTEM CLEANER - ПРОФЕСИОНАЛНА ВЕРСИЯ |
| 112 | echo. |
| 113 | echo ============================================================ |
| 114 | echo. |
| 115 | echo Лог файлът се записва на Desktop |
| 116 | echo. |
| 117 | echo ============================================================ |
| 118 | echo. |
| 119 | echo [*] Започване на почистването... (%time%) |
| 120 | echo. |
| 121 | echo ============================================================ |
| 122 | |
| 123 | :: 1. DNS Cache |
| 124 | echo [1/8] Изчистване на DNS кеш... |
| 125 | ipconfig /flushdns >nul 2>&1 |
| 126 | if %errorLevel% equ 0 ( |
| 127 | echo [УСПЕХ] DNS кешът е изчистен успешно |
| 128 | echo [1/8] УСПЕХ - DNS Cache изчистен >> "%LOGFILE%" |
| 129 | ) else ( |
| 130 | echo [ГРЕШКА] Проблем с изчистването на DNS кеша |
| 131 | echo [1/8] ГРЕШКА - DNS Cache >> "%LOGFILE%" |
| 132 | ) |
| 133 | |
| 134 | :: 2. Prefetch |
| 135 | echo [2/8] Почистване на Prefetch папка... |
| 136 | del /q /f /s %SystemRoot%\Prefetch\*.* 2>nul |
| 137 | echo [УСПЕХ] Prefetch файловете са изтрити |
| 138 | echo [2/8] УСПЕХ - Prefetch изчистен >> "%LOGFILE%" |
| 139 | |
| 140 | :: 3. Windows Temp |
| 141 | echo [3/8] Почистване на системния Temp... |
| 142 | del /q /f /s C:\Windows\Temp\*.* 2>nul |
| 143 | for /d %%i in (C:\Windows\Temp\*) do rd /s /q "%%i" 2>nul |
| 144 | echo [УСПЕХ] Системният Temp е изчистен |
| 145 | echo [3/8] УСПЕХ - Windows Temp изчистен >> "%LOGFILE%" |
| 146 | |
| 147 | :: 4. User Temp |
| 148 | echo [4/8] Почистване на потребителския Temp... |
| 149 | del /q /f /s %temp%\*.* 2>nul |
| 150 | for /d %%i in (%temp%\*) do rd /s /q "%%i" 2>nul |
| 151 | echo [УСПЕХ] Потребителският Temp е изчистен |
| 152 | echo [4/8] УСПЕХ - User Temp изчистен >> "%LOGFILE%" |
| 153 | |
| 154 | :: 5. Internet Cache |
| 155 | echo [5/8] Почистване на Internet кеш... |
| 156 | del /q /f /s "%userprofile%\AppData\Local\Microsoft\Windows\INetCache\*.*" 2>nul |
| 157 | rd /s /q "%userprofile%\AppData\Local\Microsoft\Windows\INetCache" 2>nul |
| 158 | echo [УСПЕХ] Internet кешът е изчистен |
| 159 | echo [5/8] УСПЕХ - Internet Cache изчистен >> "%LOGFILE%" |
| 160 | |
| 161 | :: 6. Windows Update Cache |
| 162 | echo [6/8] Почистване на Windows Update кеш... |
| 163 | del /q /f /s "C:\Windows\SoftwareDistribution\Download\*.*" 2>nul |
| 164 | for /d %%i in ("C:\Windows\SoftwareDistribution\Download\*") do rd /s /q "%%i" 2>nul |
| 165 | echo [УСПЕХ] Windows Update кешът е изчистен |
| 166 | echo [6/8] УСПЕХ - Windows Update Cache изчистен >> "%LOGFILE%" |
| 167 | |
| 168 | :: 7. Recycle Bin |
| 169 | echo [7/8] Изпразване на Кошчето за текущия потребител... |
| 170 | rd /s /q %systemdrive%\$Recycle.Bin\%username% 2>nul |
| 171 | echo [УСПЕХ] Кошчето е изпразнено |
| 172 | echo [7/8] УСПЕХ - Recycle Bin изчистен >> "%LOGFILE%" |
| 173 | |
| 174 | :: 8. System Restore Points (само при пълен режим) |
| 175 | if /i "%CLEAN_MODE%"=="FULL" ( |
| 176 | echo [8/8] Изтриване на старите System Restore точки... |
| 177 | vssadmin delete shadows /all /quiet >nul 2>&1 |
| 178 | echo [УСПЕХ] Старите restore точки са изтрити |
| 179 | echo [8/8] УСПЕХ - System Restore Points изтрити >> "%LOGFILE%" |
| 180 | ) else ( |
| 181 | echo [8/8] Пропуснато - System Restore точки (не е избран FULL режим) |
| 182 | echo [8/8] ПРОПУСНАТО - System Restore Points >> "%LOGFILE%" |
| 183 | ) |
| 184 | |
| 185 | :: Изчисляване на свободното място след почистване |
| 186 | call :GetFreeSpace "AFTER" |
| 187 | set FREE_AFTER=%FREE_SPACE% |
| 188 | |
| 189 | :: Изчисляване на освободеното място (байтове) |
| 190 | set FREE_BEFORE_CLEAN=%FREE_BEFORE:,=% |
| 191 | set FREE_AFTER_CLEAN=%FREE_AFTER:,=% |
| 192 | set /a FREED_SPACE=%FREE_AFTER_CLEAN% - %FREE_BEFORE_CLEAN% |
| 193 | |
| 194 | :: Конвертиране в GB/MB |
| 195 | set FREED_GB=%FREED_SPACE:~0,-9% |
| 196 | if "!FREED_GB!"=="" set FREED_GB=0 |
| 197 | set FREED_MB=%FREED_SPACE:~0,-6% |
| 198 | if "!FREED_MB!"=="" set FREED_MB=0 |
| 199 | |
| 200 | echo. |
| 201 | echo ============================================================ |
| 202 | echo РЕЗУЛТАТИ ОТ ПОЧИСТВАНЕТО |
| 203 | echo ============================================================ |
| 204 | echo. |
| 205 | echo Свободно място преди: %FREE_BEFORE% |
| 206 | echo Свободно място след: %FREE_AFTER% |
| 207 | echo. |
| 208 | if %FREED_SPACE% gtr 1073741824 ( |
| 209 | set /a FREED_GB_DISP=%FREED_SPACE%/1073741824 |
| 210 | echo ^>^> Освободени: !FREED_GB_DISP! GB ^<^< |
| 211 | ) else if %FREED_SPACE% gtr 1048576 ( |
| 212 | set /a FREED_MB_DISP=%FREED_SPACE%/1048576 |
| 213 | echo ^>^> Освободени: !FREED_MB_DISP! MB ^<^< |
| 214 | ) else ( |
| 215 | echo ^>^> Освободени: %FREED_SPACE% байта ^<^< |
| 216 | ) |
| 217 | echo. |
| 218 | echo ============================================================ |
| 219 | echo Статус: ПОЧИСТВАНЕТО ПРИКЛЮЧИ УСПЕШНО! |
| 220 | echo ============================================================ |
| 221 | echo. |
| 222 | echo Лог файлът е запазен на Desktop |
| 223 | echo. |
| 224 | echo Препоръчва се рестартиране на компютъра за най-добри резултати. |
| 225 | echo. |
| 226 | echo ============================================================ |
| 227 | |
| 228 | ( |
| 229 | echo. |
| 230 | echo ============================================================ |
| 231 | echo РЕЗУЛТАТИ ОТ ПОЧИСТВАНЕТО |
| 232 | echo ============================================================ |
| 233 | echo Свободно място преди: %FREE_BEFORE% |
| 234 | echo Свободно място след: %FREE_AFTER% |
| 235 | echo Освободено място: %FREED_SPACE% байта |
| 236 | echo ============================================================ |
| 237 | ) >> "%LOGFILE%" |
| 238 | |
| 239 | echo. |
| 240 | pause |
| 241 | exit /b 0 |
| 242 | |
| 243 | :: ============================================================ |
| 244 | :: Функция за изчисляване на свободното място |
| 245 | :: ============================================================ |
| 246 | :GetFreeSpace |
| 247 | for /f "tokens=3" %%a in ('dir %systemdrive%\ 2^>nul ^| find "bytes free"') do set FREE_SPACE=%%a |
| 248 | exit /b 0 |