@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
echo ========================================
echo 删除排除豁免列表项 Date:2026-8-6
echo ========================================
echo.
REM ========== 检测PE环境 ==========
set "is_pe=0"
set "pe_drive="
if /i "%SystemDrive%"=="X:" set "is_pe=1"
if exist "%SystemDrive%\Windows\System32\winpeshl.exe" set "is_pe=1"
if "!is_pe!"=="1" (
set "pe_drive=%SystemDrive:~0,1%"
echo [PE环境] 检测到PE系统,PE系统盘符:!pe_drive!:(已排除)
echo.
echo 正在扫描本地Windows系统...
echo.
set "sysdrive="
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist "%%d:\" (
if /i not "%%d"=="!pe_drive!" (
set "found_sys=0"
if exist "%%d:\Windows\System32\explorer.exe" set "found_sys=1"
if exist "%%d:\Windows\System32\kernel32.dll" set "found_sys=1"
if exist "%%d:\Windows\System32\ntoskrnl.exe" set "found_sys=1"
if exist "%%d:\Windows\System32\config\SYSTEM" set "found_sys=1"
if exist "%%d:\Windows\WinSxS" set "found_sys=1"
if exist "%%d:\Windows\Boot" set "found_sys=1"
if "!found_sys!"=="1" (
echo %%d: 盘 [Windows系统]
if "!sysdrive!"=="" set "sysdrive=%%d"
)
)
)
)
if "!sysdrive!"=="" (
echo [错误] 未检测到任何Windows系统!请确认硬盘连接或系统是否存在。
pause
exit /b
)
echo.
echo 默认目标系统盘:!sysdrive!:
echo.
) else (
set "sysdrive=%SystemDrive:~0,1%"
echo 系统所在盘符:!sysdrive!:
echo.
echo 检测本机所有驱动器:
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist "%%d:\" (
echo %%d: 盘
)
)
echo.
)
REM ========== 选择盘符 ==========
:input_drive
set "drive=!sysdrive!"
set /p drive=请输入要清理的驱动器盘符(默认 !sysdrive!:,直接回车确认):
if not defined drive set "drive=!sysdrive!"
set "drive=%drive::=%"
if "!drive!"=="" (
echo 错误:盘符不能为空!
goto input_drive
)
if not exist "!drive!:\" (
echo 错误:驱动器 !drive!: 不存在!
goto input_drive
)
echo.
echo 已选择驱动器:!drive!:
echo.
echo 开始删除...
echo.
%drive%:
cd \
for %%d in (
"$Recycle.Bin"
"$Windows.~BT"
"$Windows.~WS"
"$Windows.~LS"
"Recycler"
"Recycled"
"PerfLogs"
"System Volume Information"
) do (
if exist "%%~d" (
echo 正在删除: %%~d
attrib -s -h -r "%%~d" >nul 2>&1
rd /s /q "%%~d" 2>nul
)
)
for %%f in (
"swapfile.sys"
"hiberfil.sys"
"pagefile.sys"
"winpepge.sys"
) do (
if exist "%%~f" (
echo 正在删除: %%~f
attrib -s -h -r "%%~f" >nul 2>&1
del /f /q "%%~f" 2>nul
)
)
for %%d in (
"Windows\Temp"
"Windows\Logs"
"Windows\Prefetch"
"Windows\CSC"
"Windows\CbsTemp"
"Windows\WinSxS\ManifestCache"
"Windows\SoftwareDistribution"
) do (
if exist "%%~d" (
echo 正在删除: %%~d
rd /s /q "%%~d" 2>nul
)
)
for %%d in (
"Program Files\WindowsApps\Deleted"
"Program Files\WindowsApps\DeletedAllUserPackages"
) do (
if exist "%%~d" (
echo 正在删除: %%~d
rd /s /q "%%~d" 2>nul
)
)
for %%d in (
"ProgramData\Microsoft\Windows\WER"
"ProgramData\Microsoft\Windows\Caches"
"ProgramData\Microsoft\Windows Defender\Scans\History\Results"
"ProgramData\Microsoft\Windows Defender\Scans\History\Service\DetectionHistory"
) do (
if exist "%%~d" (
echo 正在删除: %%~d
rd /s /q "%%~d" 2>nul
)
)
for /d %%u in ("Users\*") do (
if exist "%%~u\AppData\Local\Temp" (
echo 正在删除: %%~u\AppData\Local\Temp
rd /s /q "%%~u\AppData\Local\Temp" 2>nul
)
if exist "%%~u\AppData\Local\Microsoft\Windows\Explorer" (
echo 正在删除: %%~u\AppData\Local\Microsoft\Windows\Explorer
rd /s /q "%%~u\AppData\Local\Microsoft\Windows\Explorer" 2>nul
)
if exist "%%~u\AppData\Local\Microsoft\Windows\INetCache" (
echo 正在删除: %%~u\AppData\Local\Microsoft\Windows\INetCache
rd /s /q "%%~u\AppData\Local\Microsoft\Windows\INetCache" 2>nul
)
if exist "%%~u\AppData\Local\lxss" (
echo 正在删除: %%~u\AppData\Local\lxss
rd /s /q "%%~u\AppData\Local\lxss" 2>nul
)
if exist "%%~u\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs" (
echo 正在删除: %%~u\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
rd /s /q "%%~u\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs" 2>nul
)
if exist "%%~u\OneDrive" (
echo 正在删除: %%~u\OneDrive
rd /s /q "%%~u\OneDrive" 2>nul
)
if exist "%%~u\OneDrive - business" (
echo 正在删除: %%~u\OneDrive - business
rd /s /q "%%~u\OneDrive - business" 2>nul
)
)
echo.
echo ========================================
echo 删除操作完成!
echo ========================================
timeout /t 3 /nobreak >nul
exit /b 0