
急着动手?直接看速查版:电脑 C 盘清理速查卡,全部命令一条引用到位。
运行方式:本文所有
PowerShell代码块均建议以管理员身份运行(Win + R 输入 Powershell)。设置类操作为图形界面,无需管理员。
难度标签:🟢 普通(人人可照做)|🟡 进阶(需理解命令含义)|🔴 高级(影响系统、谨慎操作)。
一些更改同样适用于 D 盘 E 盘的清理
为什么要写这份指南?
网上的 C 盘清理视频和博客很多,但绝大多数是“通用教程”:把磁盘清理、存储感知、删 Temp 讲一遍就完事。它们有几个共同的问题:
- 不讲先诊断:每个人的 C 盘大头不一样,有人是 WinSxS 膨胀,有人是 Docker 虚拟磁盘,有人是微信缓存。不先找出大头就照着通用清单清,可能清了半天只释放几百 MB。
- 不敢给进阶操作:DISM、休眠文件、WSL 磁盘压缩这些真正能释放几个 GB 的操作,要么不讲,要么一笔带过,还经常不给完整的命令。
针对我这台 Windows 11 + Docker Desktop(WSL2)机器,先诊断、后清理,每个操作给出可复制的命令和风险等级,最后用表格记录每次清理的实际效果,方便以后复查。
来,我们先看看这次 C 盘清理的效果记录条形图:

注:微信文件迁移、压缩 docker_data.vhdx 的直接收益体现在 D 盘瘦身(微信存储路径本就设置在 D 盘),但对 C 盘而言收益效果一致,故计入图中。
第一步:先诊断,别急着清
网上教程最大的错误就是上来就清。正确顺序是先知道空间都去哪了。
用 WizTree(免费、NTFS 扫描极快)扫一遍 C 盘,WizTree 相比于 Spaceniffer 来说,内存占用和扫描速度更快,我认为更适合作为 C 盘的诊断工具。
WizTree 的安装:

WizTree 的扫描结果:

重点看这几个区域:
-
C:\Windows\WinSxS—— 系统组件存储,可能膨胀到 10~20 GB -
C:\Windows\SoftwareDistribution\Download—— Windows 更新缓存 -
C:\Users\<用户名>\AppData\Local—— 各种软件缓存、Docker 的 vhdx 都在这里

C:\hiberfil.sys、C:\pagefile.sys—— 休眠文件与页面文件

第二步:系统级清理(官方支持清理区)
这一层的操作全部是微软官方支持的方式,不碰系统关键文件。
🟢 1. 存储感知
设置 → 系统 → 存储 → 存储感知,开启自动清理,并点击"配置存储感知或立即运行",把临时文件保留时限设为 0 天,勾选"删除我的应用未在使用的临时文件",然后点击"立即清理"。


🟢 2. 磁盘清理老面板
新版"清理建议"覆盖范围比老面板小,windows.old、还原点这些还得用老面板。
磁盘清理前后对比:
Win + R 输入 cleanmgr,选中 C 盘,点"清理系统文件",
勾选:
- Windows 更新清理(能释放几个 GB)
- 以前的 Windows 安装(
windows.old,需要注意的是:清完就退不回旧版本) - 临时文件、缩略图


等待磁盘清理完成即可:

🟡 3. DISM 清理组件存储(WinSxS)
WinSxS 是系统更新组件的存储库,会保留旧版本以便回滚,长期不清理能膨胀到 10 GB 以上。
注意:永远不要手动删 WinSxS 里的文件,必须用官方命令。
先用管理员身份打开 PowerShell,分析能释放多少:
1 | DISM /Online /Cleanup-Image /AnalyzeComponentStore |
结果因人而异,就拿我的 Powershell 结果来看:如果可回收的程序包数目为 0 ,推荐使用组件存储清理为“否”,其实就没有必要继续清理。

但是如果输出里的“可回收的程序包数”不为零以及“推荐使用组件存储清理”,请执行标准清理:
1 | DISM /Online /Cleanup-Image /StartComponentCleanup |
如果还想更激进,加 /ResetBase 参数(会立即删除所有旧版组件,清理后将无法卸载已安装的系统更新):
1 | DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase |
注意:
/ResetBase适合已经确认系统稳定、希望释放更多空间的用户。它会删除旧版本组件,因此执行后无法卸载当前已经安装的 Windows 更新。在执行前,请你确认自己接受不可卸载更新这个后果。
🟢 4. 清 Windows 更新缓存
如果 SoftwareDistribution\Download 积压很多,先停止服务再删,避免文件被占用:
1 | net stop wuauserv |
第三步:系统文件(慎用区)
这些操作会影响系统行为,看自己需求来,明确标注风险。
🟡 1. 休眠文件 hiberfil.sys
关闭休眠的前后对比:


启动页面对比(左:未关闭休眠 右:关闭休眠):
如果你从来不用"休眠"(注意不是"睡眠"[注1]),可以直接关掉。
管理员身份打开 Powershell 窗口,输入以下指令关闭“休眠”功能:
1 | powercfg /h off |
(修改之后如果想要回滚:)
1 | powercfg /h on |
想保留休眠但要精简(快速启动仍然可用,但是无法在任务栏使用“休眠”功能):
1 | powercfg /h /type reduced |
(修改之后如果想要回滚:)
1 | powercfg /h /type full |
🟡 2. 页面文件 pagefile.sys
虚拟内存,一般不建议关闭。如果 C 盘实在紧张,可以调整到合适的大小(具体调整道多大多小得看具体的自己设备),如果你的 D 盘是本地硬盘的话,也可以把它迁移到 D 盘:
Win + R 输入 sysdm.cpl

高级系统设置 → 性能"设置" → 高级 → 虚拟内存"更改"
不推荐完全关闭 C 盘的虚拟内存,可以调整变小(比如 16GB (约16384 MB)-> 8192 MB),但最佳实践依旧是:选择“系统管理的大小”。
这一部分往往不是 C 盘爆满的大头,如果调整的不好反而让你电脑的运行体验变差,适得其反,得不偿失。

这一部分的操作可逆,你可以随时滚回电脑稳定运行时候的 pagefile.sys 的设置。
🟢 3. Windows 临时目录
可以先看看系统级 Temp 占用了多少空间,再决定有没有清理价值:
1 | "{0:N2} MB" -f ((Get-ChildItem C:\Windows\Temp -Recurse -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB) |
可以分析出:我的系统级 Temp 文件大概是有 1.25 MB左右,如果是这样的话就没有太大清除的必要。

如果你的诊断结果显示占用空间很大,使用以下管理员 Powershell 命令清除:
1 | Remove-Item C:\Windows\Temp\* -Recurse -Force -ErrorAction SilentlyContinue |
🟡 4.系统还原点
系统还原点主要备份 Windows 系统状态(系统文件、注册表、驱动和设置),不是个人文件或软件数据备份,大多数普通用户平时用不到。
适合留下系统还原点的人:经常安装软件、驱动、修改系统设置、喜欢折腾电脑,或者没有其他完整备份的人。
可以关闭的人:电脑使用稳定、不怎么改系统,并且更需要释放磁盘空间的人。
关闭系统还原点前后对比图:
Win + R 输入:
1 | systempropertiesprotection.exe |

可以在“系统保护 → 配置”中调整最大使用量。


第四步:用户级与应用级(大头通常在这)
🟢 1. 用户临时文件
同理,可以先看看用户 Temp 占了多少空间,再决定有没有清理价值:
1 | "{0:N2} MB" -f ((Get-ChildItem $env:TEMP -Recurse -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB) |
可以分析出:我的用户临时文件大概是有 2.60 MB左右,如果是这样的话就没有太大清楚的必要。

但是如果你的分析结果不同,这一部分占用很多的话,使用以下管理员 Powershell 命令清除用户临时文件:
1 | Remove-Item $env:TEMP\* -Recurse -Force -ErrorAction SilentlyContinue |
当然,你也可以选择另一种方式清除用户 Temp 文件:

右键 Temp 文件夹 -> 属性 -> 查看文件占用大小,发现并不小,足足占了 5 GB!

Ctrl+A 全选文件删除:

清除临时目录的过程中,如果遇到软件占用就跳过、非常不建议强杀进程。

注意:这里清理的是用户层级的 Temp 文件,在
C:\Users\DEL\AppData\Local\Temp下;而[[#🟢 3. Windows 临时目录]] 这一步清理的是 Windows 系统层级的 Temp 文件,通常在C:\Windows\Temp目录下,这是不一样的。
🟢 2. 开发缓存
日常写脚本、装软件攒下的包管理器缓存:
1 | npm cache clean --force |
能清理出多少完全取决于你使用相关包的多少。
🟡 3. 微信/QQ 缓存
微信的"文件管理"默认在 C:\Users\<用户名>\Documents\WeChat Files,聊天图片视频缓存动辄 10 GB 以上。设置里把存储位置改到其他存储空间大的硬盘(微信 → 设置 → 文件管理 → 更改)。
可以看到,我的本地微信存储空间占用了 22.7 GB左右,这是一个很大的存储占用。

迁移方式也不难,方式如下:

我们耐心等待迁移完成:
🔴 4. Docker Desktop
先输入:
1 | docker system df |
检查 Docker 各部分存储占用情况。

再看:
1 | docker image ls |
分析有哪些镜像被使用,哪些镜像占用空间大,哪些镜像不再使用。
然后:
1 | docker image prune |
只删除悬空镜像。这一步往往可以清除一部分的镜像,腾出一部分的空间。

这里是分割线 呜呼呼
注意:以下操作主要适用于 Docker 使用频繁、vhdx 已明显增大(20 GB为分界)的用户。普通用户如果 Docker 使用较少,可以跳过这部分操作。
压缩前后的效果对比:
Docker 的镜像和容器数据都装在:
C:\Users\DEL\AppData\Local\Docker\wsl\disk\docker_data.vhdx
Docker Desktop 的 WSL2 虚拟磁盘 ext4.vhdx 会随着使用自动增长,但删除镜像和容器后,文件通常不会立即缩小,需要手动执行压缩操作才能回收 C 盘空间。


就拿我的 Docker Desktop 来说,结合前面的 docker system df (检查 Docker 各部分存储占用情况)。我们可以把现在的情况理解成:
1 | Docker 实际数据 ≈ 2.9 GB |
VHDX 比 Docker 统计的数据大一些是正常的,因为里面还包含虚拟文件系统自身的开销和已经分配的空间。像我这种情况其实是没有清理这部分数据的必要的。但是如果你发现 docker_data.vhdx 远远大于你的 Docker 实际数据,就需要清理压缩操作了。
先彻底退出 Docker Desktop(托盘图标消失即代表已完全退出),然后压缩。压缩采用只读挂载后 compact,正常退出 Docker 再操作不会损坏数据;动手前确认重要容器/镜像已备份(或确认可丢弃)即可。
1 | wsl --shutdown |
确认文件以后,再运行:
进入 DiskPart
1 | diskpart |
选择 Docker 的 VHDX
1 | select vdisk file="C:\Users\<用户名>\AppData\Local\Docker\wsl\disk\docker_data.vhdx" |
将
C:\Users\<用户名>\...替换为你实际的docker_data.vhdx文件路径。
只读挂载并压缩
1 | attach vdisk readonly |
卸载并退出
1 | detach vdisk |
另外,compact vdisk 如果最后提示类似:
1 | DiskPart successfully compacted the virtual disk file. |
就说明压缩成功。
治本的办法是直接把 Docker 的数据盘挪到本地的 D 盘(注意:最好是本地硬盘):
迁移前后的效果对比:


操作步骤: Settings → Resources → Advanced → Disk image location


在 D 盘下建立一个新的 Docker 文件夹用于放置 vhdx 数据:

将 Disk image location 路径改成 D:\Docker 后 Apply & Restart。



🟢 5. 下载文件夹:清理存量 + 迁移增量
下载 文件夹是最容易积灰的地方,每次清理 C 盘都建议先检查。
① 清理存量
将重要文件归档到 D/E 盘对应目录,安装包、失效压缩包、重复文件直接删除。
但清理只能解决“已经有的”,迁移才能解决“以后还会来的”。
② 修改浏览器下载位置
以 Chrome 为例:
1 | 设置 → 下载内容 → 更改下载位置 |
建议修改到:
1 | E:\Downloads |

③ 修改 Windows 默认保存位置
路径:
1 | 设置 → 系统 → 存储 → 高级存储设置 → 保存新内容的地方 |


将新的文档、图片、视频、音乐调整到 D/E 盘。
④ 其他数据规划
- 大型软件 / 游戏 / 素材:优先安装到 SSD 分区(比如我的 D 盘),机械硬盘更适合作为归档和备份。
- 工业软件(SolidWorks、CATIA、MATLAB 等):建议安装到SSD 分区(比如我的 D 盘),但部分组件仍可能写入 C 盘。
- Python / Node.js:主程序体积不大,可以默认安装;开发者更需要关注
.venv、pip 缓存、npm 包和node_modules。 - Obsidian / 博客 / 项目文件:不要放 C 盘,建议放独立磁盘,并配合 Git、云同步或备份。
⚠️ 删除文件前确认内容。
误删重要文件可以尝试:Recuva
它曾经帮我恢复过一次误删的文章(整理了两三天),避免了一次数据损失。
如果你问我为什么误删了,都是因为下面这个命令:
1 | Remove-Item "C:\Users\DEL\Desktop\学习资料" -Recurse -Force |

其实当时,是为了强行删除因为权限不足被锁定的文件夹。但是会永久删除,谨慎使用!
维护节奏
-
每周:
- [x] 存储感知"立即清理"
- [x]
DISM /Online /Cleanup-Image /AnalyzeComponentStore看一眼 - [x] Windows 临时文件夹清理
-
每月:
- [x] WizTree 扫一遍,确认 C 盘大头没有悄悄换人
- [x] 清 Windows 更新缓存
- [x] 清理开发缓存
避坑清单
- [x] 不要手动删 WinSxS 里的任何文件,会损坏系统
- [x] 不要删恢复分区,蓝屏时的最后一道保险
- [x]
/ResetBase谨慎用,清完无法卸载系统更新 - [x] 别装"XX 清理大师"“XX 管家”,清理效果不如上面这些,还附带全家桶
- [x] 微信/QQ 缓存清理前确认聊天记录已同步或备份
参考文章
【全网最完整】C盘清理保姆教学!耗时21天制作,看完你的C盘不可能还红_哔哩哔哩_bilibili
【建议收藏】全网最详细C 盘清理指南!!!绝对值得收藏!!!_哔哩哔哩_bilibili
C盘清理指南,清理出30G+起,超详细总结(建议收藏) - 知乎
C盘满了?别慌,这就教你如何清理!-荣耀俱乐部
WinSxS文件夹太大清理方法及步骤详解,小白向指南
WizTree下载安装和使用保姆级教程(附安装包,2026最新) - 知乎
“系统保护” | Microsoft Support
下载 Recuva | 免费恢复删除的文件!
Dowload and donate - CGSecurity
Docker Desktop WSL 2 backend on Windows | Docker Docs
注1:休眠与睡眠
休眠状态下的工作状态会保留,而且耗电量比睡眠状态下低,适合需要频繁移动笔记本电脑的工作情况下使用。