清理系统垃圾
@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\Windows\Temp\*.*
del /f /s /q %systemdrive%\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\*.*
del /f /s /q %systemdrive%\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\*.*
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q %userprofile%\AppData\Local\Temp\*.*
del /f /s /q %userprofile%\AppData\Local\CrashDumps\*.*
del /f /s /q %userprofile%\Local Settings\Temporary Internet Files\*.*
del /f /s /q %userprofile%\Local Settings\Temp\*.*
del /f /s /q %userprofile%\recent\*.*
del /f /s /q %windir%\system32\dllcache\*.*
echo 正在清除浏览器缓存,请稍等......
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\*.*"
echo 正在清除驱动在安装时留下的解压文件,请稍等......
del /f /s /q %SystemDrive%\AMD\*.*
del /f /s /q %windir%\Intel\*.*
del /f /s /q %windir%\NVIDIA\*.*
del /f /s /q %windir%\Prog\*.*
echo 清理 Windows 更新缓存
net stop wuauserv
del /f /s /q %windir%\SoftwareDistribution\Download\*.*
net start wuauserv
echo 清除系统垃圾完成!
echo. & pause
给 C 盘减负:.cursor 目录联接
将 Cursor 配置/缓存目录放到 D 盘,在 C 盘用户目录下用目录联接指过去,可减轻 C 盘占用。
- 关闭 Cursor,避免占用
%USERPROFILE%\.cursor。 - 在 D 盘建好目标目录(示例:
D:\你的用户名\.cursor),把原%USERPROFILE%\.cursor里的内容剪切到该目录。 - 删除 C 盘侧已空的
%USERPROFILE%\.cursor文件夹(必须是真实目录,不能残留同名文件夹,否则mklink会失败)。 - 以管理员身份打开「命令提示符」或 PowerShell,执行下面的联接命令(将
{user}换成你的 Windows 登录名;也可用下方带%USERNAME%的写法)。
REM 需要管理员
mklink /D "%USERPROFILE%\.cursor" D:\{user}\.cursor
若希望路径随当前用户名自动展开,可用:
REM 需要管理员(目标目录须已存在且已迁入数据)
mklink /D "%USERPROFILE%\.cursor" "D:\%USERNAME%\.cursor"
清理 Windows\Installer(孤儿补丁缓存)
C:\Windows\Installer 存放已安装程序的 .msi / .msp 补丁缓存,通常体积巨大(10–20 GB+)。其中一部分是"孤儿文件"——对应的程序已卸载,但缓存未被清除。
此目录不可直接删除,否则会导致程序无法卸载或修复。
原先常用的第三方工具 PatchCleaner(homedev.com.au)已停止维护、官网下线。目前建议通过系统自带磁盘清理来处理:
REM 管理员运行 - 先配置清理项(勾选全部,尤其"Windows 更新清理")
cleanmgr /d C /sageset:1
REM 再执行清理
cleanmgr /d C /sagerun:1
清理 Windows\WinSxS(组件存储)
WinSxS(Windows Side-by-Side)是 Windows 的组件存储,位于 C:\Windows\WinSxS。
为什么体积大?
- Windows 按组件 + 版本号管理系统文件。每次系统更新,新旧版本都保留在 WinSxS 中以便回滚。
C:\Windows\System32等目录下的 DLL 实际上是硬链接指向 WinSxS 中的文件。资源管理器和 SpaceSniffer 会重复计算硬链接体积,所以报告值比实际独占空间大(通常只有报告值的 40%–60%)。
查看真实占用:
REM 管理员运行
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
输出示例:
组件存储(WinSxS)的大小: 12.35 GB
与 Windows 共享: 8.10 GB ← 硬链接重复部分,不算真正占用
备份和已禁用的功能: 1.52 GB
缓存和临时数据: 0.73 GB
可以推荐清理的组件数: 是
DISM 清理命令:
DISM(Deployment Image Servicing and Management)是 Windows 内置的镜像服务工具,/Cleanup-Image 子命令用于清理组件存储中被新版取代的旧版本组件文件。
REM 温和清理(保留回滚能力,可回收 1-2 GB)
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
REM 深度清理(以当前更新为基线,永久删除旧版本,不可回滚旧更新,可回收 2-5 GB)
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
| 参数 | 行为 | 回滚能力 |
|---|---|---|
/StartComponentCleanup |
删除被取代的旧版本组件 | 保留 |
/StartComponentCleanup /ResetBase |
以当前更新为新基线,永久删除所有旧版本 | 丧失(一般无影响) |
清理用户目录缓存
| 目录 | 清理方式 |
|---|---|
%USERPROFILE%\AppData\Local\Temp |
直接清空(已在上方脚本覆盖) |
%USERPROFILE%\AppData\Local\CrashDumps |
直接清空(已在上方脚本覆盖) |
%USERPROFILE%\AppData\Local\Google\Chrome\...\Cache |
清空浏览器缓存(已在上方脚本覆盖) |
%USERPROFILE%\AppData\Local\Microsoft\Edge\...\Cache |
同上 |
%USERPROFILE%\.cursor |
建议 mklink 到 D 盘(见上方小节) |
%USERPROFILE%\AppData\Local\NuGet\v3-cache |
dotnet nuget locals all --clear |
%USERPROFILE%\AppData\Local\Microsoft\Visual Studio |
在 VS 中清理组件缓存 |
清理 AppData 各应用缓存
AppData\Local 是 C 盘用户目录中的"隐形大户",以下按占用从大到小列出清理建议:
| 目录 | 大小 | 清理方式 |
|---|---|---|
Microsoft\Outlook |
~4.3 GB | Outlook 离线缓存(OST),在 Outlook → 帐户设置 → 数据文件中,调整邮件保留时间为 3–6 个月 |
Google\Chrome |
~3.1 GB | chrome://settings/clearBrowserData 清理缓存 |
JetBrains |
~3.7 GB | IDE → File → Invalidate Caches;删除不再使用的旧版本目录 |
Microsoft\Edge |
~1.4 GB | edge://settings/clearBrowserData 清理缓存 |
Packages |
~1.7 GB | UWP 应用数据(含新版 Teams 等),通过 设置 → 应用 → 对应应用 → 重置 |
NuGet |
~1.5 GB | dotnet nuget locals all --clear(详见下方说明) |
AndroidStudio* |
~1.3 GB | 不做 Android 开发可卸载;否则 rd /s /q "%USERPROFILE%\.gradle\caches" |
Postman |
~1.2 GB | Postman 设置中清理历史/响应缓存;不用可卸载 |
Microsoft\VisualStudio |
~887 MB | VS Installer → 更多 → 清理下载缓存 |
Microsoft\Office |
~716 MB | Office 缓存,一般不需手动清 |
YarnCache |
~676 MB | yarn cache clean |
Cursor |
~686 MB | 建议 mklink 到 D 盘(见上方小节) |
AzureFunctionsTools |
~459 MB | 不用可删:rd /s /q "%LOCALAPPDATA%\AzureFunctionsTools" |
Microsoft\Terminal Server Client |
~388 MB | RDP 位图缓存,可安全删除 |
go-build |
~294 MB | go clean -cache |
Microsoft\Teams\Cache |
~229 MB | del /f /s /q "%LOCALAPPDATA%\Microsoft\Teams\Cache\*.*" |
快速清理脚本(可安全执行):
REM === AppData 缓存清理 ===
REM Yarn 缓存(~676 MB)
yarn cache clean
REM NuGet 全部本地缓存(~1.5 GB)
dotnet nuget locals all --clear
REM Go 编译缓存(~294 MB)
go clean -cache
REM RDP 位图缓存(~388 MB)
del /f /s /q "%LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache\*.*"
REM Teams 旧版缓存(~229 MB)
del /f /s /q "%LOCALAPPDATA%\Microsoft\Teams\Cache\*.*"
REM Edge 缓存(~1.4 GB)
del /f /s /q "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Cache\*.*"
REM Chrome 缓存(~3.1 GB)
del /f /s /q "%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\*.*"
NuGet 缓存迁移说明
在 NuGet.config 中设置 globalPackagesFolder 只控制包文件本体的存放位置,NuGet 还有三个独立缓存仍然留在 C 盘:
| 缓存目录 | 用途 | 受 globalPackagesFolder 控制? |
|---|---|---|
AppData\Local\NuGet\v3-cache |
HTTP 响应缓存(包元数据、搜索结果等 API 响应) | 否 |
AppData\Local\NuGet\plugins-cache |
认证插件缓存(凭据提供程序等) | 否 |
Temp\NuGetScratch |
临时工作目录(安装/还原过程中的中间文件) | 否 |
globalPackagesFolder 指向的目录 |
包文件本体(.nupkg + 解压内容) | 是 ✓ |
要将这三个缓存也迁到 D 盘,需要设置系统环境变量:
REM 管理员运行 - 永久设置系统环境变量
setx NUGET_HTTP_CACHE_PATH "D:\AppData\nuget\v3-cache" /M
setx NUGET_PLUGINS_CACHE_PATH "D:\AppData\nuget\plugins-cache" /M
setx NUGET_SCRATCH "D:\AppData\nuget\scratch" /M
设置后,先清理旧缓存再重启:
dotnet nuget locals all --clear
常用磁盘分析工具
-
TreeSize Free
- 作用: 图形化展示各文件夹/文件占用空间,支持按大小排序,快速找出大文件/大目录。
- 官网下载: https://www.jam-software.com/treesize_free
-
SpaceSniffer
- 作用: 以「矩形块」方式直观展示磁盘空间占用情况,适合快速定位"空间杀手"。
- 官网下载: http://www.uderzo.it/main_products/space_sniffer
最后修改于 2024-02-03
此篇文章的评论功能已经停用。