@echo off setlocal EnableExtensions EnableDelayedExpansion set "WUDL=C:\Windows\SoftwareDistribution\Download" set "WINTEMP=C:\Windows\Temp" set "TMPCOPY=%TEMP%\diskclean_elevated.bat" if /i "%~1"=="ADMIN" goto ADMIN_ENTRY title Windows µð½ºÅ© Á¤¸® echo ============================================== echo Windows µð½ºÅ© Á¤¸® echo ============================================== echo Áö¿ì´Â °Í echo - Àӽà Æú´õ : %TEMP% echo - Àӽà Æú´õ : %WINTEMP% (°ü¸®ÀÚ ±ÇÇÑ) echo - Windows Update ÀÜ¿© ÆÄÀÏ (°ü¸®ÀÚ ±ÇÇÑ) echo. echo °Çµå¸®Áö ¾Ê´Â °Í echo - ¹®¼­ / ¹ÙÅÁÈ­¸é / ´Ù¿î·Îµå / ÈÞÁöÅë echo - ·¹Áö½ºÆ®¸®, ¼­ºñ½º ¼³Á¤, ½ÃÀÛ ÇÁ·Î±×·¥ echo ============================================== set "BEFORE=" call :FREEMB if defined FREEMB set "BEFORE=!FREEMB!" if defined BEFORE ( call :MB2GB !BEFORE! echo ÇöÀç Cµå¶óÀÌºê ¿©À¯ °ø°£ : !GBTXT! echo ============================================== ) choice /c YN /n /m "Á¤¸®¸¦ ½ÃÀÛÇÒ±î¿ä? (Y/N): " if errorlevel 2 goto ENDX echo. echo [1/3] »ç¿ëÀÚ Àӽà Æú´õ Á¤¸®... call :CLEANDIR "%TEMP%" echo. echo [2/3] °ü¸®ÀÚ ¿µ¿ª Á¤¸® - Windows Àӽà Æú´õ / Update ÀÜ¿© set "ADMINDONE=" fltmc >nul 2>&1 if errorlevel 1 goto ELEVATE call :MACHINE_CLEAN set "ADMINDONE=1" goto RESULT :ELEVATE echo °ü¸®ÀÚ ±ÇÇÑÀÌ ÇÊ¿äÇÕ´Ï´Ù. UAC â¿¡¼­ "¿¹" ¸¦ ¼±ÅÃÇϼ¼¿ä. set "RUNFILE=%~f0" copy /y "%~f0" "%TMPCOPY%" >nul 2>&1 if exist "%TMPCOPY%" set "RUNFILE=%TMPCOPY%" powershell -NoProfile -Command "Start-Process -FilePath '%RUNFILE%' -ArgumentList 'ADMIN' -Verb RunAs -Wait" if not errorlevel 1 set "ADMINDONE=1" if exist "%TMPCOPY%" del /f /q "%TMPCOPY%" >nul 2>&1 if not defined ADMINDONE ( echo °ü¸®ÀÚ ±ÇÇÑÀ» ¾òÁö ¸øÇß½À´Ï´Ù. ÀÌ ºÎºÐÀº °Ç³Ê¶Ý´Ï´Ù. echo »ç¿ëÀÚ Àӽà Æú´õ Á¤¸®´Â ÀÌ¹Ì ³¡³µ½À´Ï´Ù. ) :RESULT echo. echo [3/3] °á°ú set "AFTER=" call :FREEMB if defined FREEMB set "AFTER=!FREEMB!" if defined BEFORE if defined AFTER ( set /a GAINED=AFTER-BEFORE if !GAINED! LSS 0 set /a GAINED=0 call :MB2GB !AFTER! echo È®º¸ÇÑ °ø°£ : !GAINED! MB echo ÇöÀç ¿©À¯ °ø°£ : !GBTXT! ) if not defined ADMINDONE echo ^(°ü¸®ÀÚ ¿µ¿ªÀº Á¤¸®µÇÁö ¾Ê¾Ò½À´Ï´Ù^) call :BIGLEFTOVERS echo. pause exit /b :ENDX echo. echo Ãë¼ÒÇß½À´Ï´Ù. exit /b :ADMIN_ENTRY title Windows µð½ºÅ© Á¤¸® - °ü¸®ÀÚ ´Ü°è fltmc >nul 2>&1 if errorlevel 1 goto NOADMIN call :MACHINE_CLEAN echo. echo °ü¸®ÀÚ ´Ü°è ¿Ï·á. ÀÌ Ã¢À» ´ÝÀ¸¸é ¿ø·¡ â¿¡¼­ °á°ú°¡ ³ª¿É´Ï´Ù. echo. pause exit /b :NOADMIN echo. echo [½ÇÆÐ] °ü¸®ÀÚ ±ÇÇÑÀ» ¾òÁö ¸øÇß½À´Ï´Ù. echo. pause exit /b 1 :MACHINE_CLEAN echo (a) %WINTEMP% Á¤¸®... call :CLEANDIR "%WINTEMP%" echo (b) Windows Update ¼­ºñ½º Á¤Áö... net stop wuauserv >nul 2>&1 net stop bits >nul 2>&1 echo (c) Windows Update ÀÜ¿© ÆÄÀÏ »èÁ¦... if exist "%WUDL%" ( rd /s /q "%WUDL%" 2>nul if exist "%WUDL%" ( call :CLEANDIR "%WUDL%" ) else ( md "%WUDL%" 2>nul echo »èÁ¦ ¿Ï·á. ) ) else ( echo ÀÜ¿© ÆÄÀÏÀÌ ¾ø½À´Ï´Ù. ) echo (d) Windows Update ¼­ºñ½º Àç½ÃÀÛ... net start bits >nul 2>&1 net start wuauserv >nul 2>&1 goto :eof :CLEANDIR if not exist %1 ( echo ´ë»ó ¾øÀ½ : %~1 goto :eof ) for /f "delims=" %%d in ('dir /b /ad %1 2^>nul') do rd /s /q "%~1\%%d" 2>nul del /f /q /a "%~1\*" >nul 2>&1 set "LEFT=" for /f "delims=" %%d in ('dir /b /a %1 2^>nul') do set "LEFT=1" if defined LEFT ( echo Á¤¸®Çß½À´Ï´Ù. »ç¿ë ÁßÀÎ ÆÄÀÏ ÀϺδ ³²½À´Ï´Ù - Á¤»óÀÔ´Ï´Ù. ) else ( echo Á¤¸® ¿Ï·á : %~1 ) goto :eof :BIGLEFTOVERS set "BIG=" if exist "C:\Windows.old" set "BIG=1" if exist "C:\$WinREAgent" set "BIG=1" if not defined BIG goto :eof echo. echo ============================================== echo [Âü°í] ÀÌ ¹èÄ¡°¡ °Çµå¸®Áö ¾Ê´Â ´ë¿ë·® Ç׸ñÀÌ ÀÖ½À´Ï´Ù. if exist "C:\Windows.old" echo - C:\Windows.old : ÀÌÀü Windows ¼³Ä¡º». º¸Åë 20~30 GB if exist "C:\$WinREAgent" echo - C:\$WinREAgent : ¾÷µ¥ÀÌÆ® ÀÜ¿© echo. echo »èÁ¦ÇÏ·Á¸é Windows ±âº» ±â´ÉÀ» ¾²¼¼¿ä. ¼öµ¿ »èÁ¦´Â ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù. echo ¼³Á¤ - ½Ã½ºÅÛ - ÀúÀå¼Ò - Àӽà ÆÄÀÏ echo ============================================== goto :eof :FREEMB set "FREEMB=" for /f "delims=" %%a in ('powershell -NoProfile -Command "[int]((Get-PSDrive C).Free/1MB)" 2^>nul') do set "FREEMB=%%a" goto :eof :MB2GB set /a _g=%1/1024 set /a _d=(%1*10/1024) %% 10 set "GBTXT=!_g!.!_d! GB" goto :eof