Win清理C盘垃圾

Posted by cmbjx on April 23, 2024

前言

每次清理C盘都很麻烦,为了不用下载软件就能更方便的清理,所以有了清理脚本。

第一步:新建C盘清理代码.bat文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
@echo off
title                 一叶知秋@魏无羡                             
color A
echo Windows 系统垃圾清理工具
echo ========================

:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% == 0 (
    echo 已具有管理员权限,继续执行清理操作...
) else (
    echo 警告: 此程序需要管理员权限才能完全清理所有垃圾文件。
    echo 请右键点击程序,选择'以管理员身份运行'。
    pause
    exit /b
)

:: 密码验证
set CORRECT_PASSWORD=10086
set ATTEMPTS=3
:password_loop
if %ATTEMPTS% equ 0 (
    echo 密码错误,程序退出。
    pause
    exit /b
)
set /p INPUT_PASSWORD=请输入密码 (还剩 %ATTEMPTS% 次尝试): 
if "%INPUT_PASSWORD%"=="%CORRECT_PASSWORD%" (
    echo 密码验证成功,开始执行清理操作...
) else (
    echo 密码错误!
    set /a ATTEMPTS-=1
    goto password_loop
)

:: 清理临时文件
echo 正在清理临时文件...
cleanmgr /sagerun:1
del /f /s /q %TEMP%\*
del /f /s /q %TMP%\*
del /f /s /q C:\Windows\Temp\*
if defined USERPROFILE (
    del /f /s /q %USERPROFILE%\AppData\Local\Temp\*
)
del /f /s /q C:\Windows\Prefetch\*
echo 临时文件清理完成!
timeout /t 1 >nul

:: 清空回收站
echo 正在清空回收站...
cleanmgr /sagerun:2
powershell -Command "Clear-RecycleBin -Force -ErrorAction SilentlyContinue"
if %errorLevel% equ 0 (
    echo 回收站已清空!
) else (
    echo 清空回收站时出错,可能需要管理员权限。
)
timeout /t 1 >nul

:: 清理浏览器缓存(以 Chrome、Edge、Firefox 为例)
echo 正在清理浏览器缓存...
if defined USERPROFILE (
    set "USERPROFILE=%USERPROFILE%"
    del /f /s /q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache\*"
    del /f /s /q "%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\Default\Cache\*"
    for /d %%a in ("%USERPROFILE%\AppData\Local\Mozilla\Firefox\Profiles\*") do (
        del /f /s /q "%%a\cache2\*"
    )
)
echo 浏览器缓存清理完成!
timeout /t 1 >nul

:: 清理 Windows 更新缓存
echo 正在清理 Windows 更新缓存...
cleanmgr /sagerun:3
net stop wuauserv
del /f /s /q %windir%\SoftwareDistribution\Download\*
net start wuauserv
dism /online /cleanup-image /startcomponentcleanup /resetbase
cleanmgr /sagerun:8
cleanmgr /sagerun:9
cleanmgr /sagerun:10
echo Windows 更新缓存清理完成!
timeout /t 1 >nul

:: 清理 Windows 备份文件
echo 正在清理 Windows 备份文件...
if exist C:\Windows.old (
    echo 发现 Windows.old 文件夹,尝试清理...
    rmdir /s /q C:\Windows.old
    if %errorLevel% equ 0 (
        echo Windows.old 文件夹已清理!
    ) else (
        echo 清理 Windows.old 文件夹失败,可能需要使用磁盘清理工具。
    )
)
vssadmin delete shadows /all /quiet
echo Windows 备份文件清理完成!
timeout /t 1 >nul

:: 清理系统日志文件
echo 正在清理系统日志文件...
cleanmgr /sagerun:5
cleanmgr /sagerun:7
powershell -Command "wevtutil el | Foreach-Object {wevtutil cl \"$_\"}"
del /f /s /q C:\Windows\Logs\CBS\*
echo 系统日志文件清理完成!
timeout /t 1 >nul

:: 清理 Windows Defender 文件
echo 正在清理 Windows Defender 文件...
cleanmgr /sagerun:4
echo Windows Defender 文件清理完成!
timeout /t 1 >nul

:: 清理 IIS 日志
echo 正在清理 IIS 日志...
cleanmgr /sagerun:6
echo IIS 日志清理完成!
timeout /t 1 >nul

echo 所有清理操作已完成!
pause