
C盘又红了可能是打工人电脑里最经典的开年焦虑之一。很多人第一反应是下载一个“清理软件”结果装完发现弹窗比垃圾还多C盘空间没少多少浏览器主页却莫名其妙被改了。其实在 Windows 10 和 Windows 11 上很多有效的清理操作根本不需要第三方工具用系统自带功能和几条命令就能完成。本文会把清理C盘的思路拆成“系统工具清理、隐形文件处理、大文件定位、脚本自动化、日常预防”几个部分结合常见占空间场景整理一套能实际腾出几个G甚至十几个G空间的方案同时也会标注哪些操作需要谨慎避免误删系统文件。本文以 Windows 10 / Windows 11 为例命令基本兼容部分操作需要管理员权限。如果你不希望用来路不明的“清理大师”也不想天天手动删文件这篇文章值得收藏备用。1. C盘为什么总是不够用先搞清楚空间去哪了1.1 这些“空间小偷”最常见C盘之所以容易满是因为它是系统盘几乎所有“默认路径”都会往C盘塞数据。比如系统更新、软件安装、浏览器缓存、聊天记录、临时文件、虚拟内存全都默认放在C盘。随着时间推移这些数据会慢慢积累成几个G甚至几十个G。比较常见的占用来源包括系统更新缓存位于C:\Windows\SoftwareDistribution\Download反复更新后可能达到数GB。休眠文件C:\hiberfil.sys默认大小约为物理内存的 40% 到 75%16GB 内存的电脑可能占用 6GB 到 10GB。虚拟内存C:\pagefile.sys默认会占用相当于物理内存 1 到 2 倍的空间。临时文件用户临时目录、系统临时目录、浏览器缓存日积月累非常可观。软件缓存微信、QQ、浏览器、IDE、包管理器都会缓存文件尤其是聊天记录和模型文件轻松达到几十GB。系统还原点卷影副本会占用 C 盘空间默认情况下可能占几个GB。升级残留目录C:\Windows.old可能在系统大版本升级后残留 10GB 到 20GB。组件存储C:\Windows\WinSxS里的旧组件版本会持续增长只能通过 DISM 命令安全清理。很多用户觉得C盘“莫名”满了其实并不是系统在悄悄干坏事而是这些目录被你忽略了。只有先搞清楚空间去哪了清理才有针对性也才能避免误删。1.2 清理前必须做的准备工作清理C盘并不复杂但安全永远是第一位的。动手之前建议先做下面几件事关闭正在运行的重要程序尤其是浏览器、微信、QQ、开发工具、数据库等。程序进程会占用文件导致清理时出现“文件正在使用”的提示。重要数据先备份。虽然下面介绍的都是常规清理项但磁盘操作总有意外建议把桌面上还没整理的重要文档、照片先复制到 D 盘或网盘。创建系统还原点。在“开始菜单”搜索“创建还原点”进入“系统保护”选项卡给 C 盘创建一个还原点。万一清理过程中误删了系统文件还能恢复到当前状态。绝大多数清理命令都需要管理员权限。建议先打开“以管理员身份运行”的命令提示符或 PowerShell再执行命令。准备工作做完后下面就可以正式操作了。2. 先用系统自带功能安全清理一大波2.1 磁盘清理工具与“清理系统文件”Windows 自带了一个非常容易被忽视的清理工具磁盘清理。它在 Windows 10 / Windows 11 上都存在而且清理得很干净不需要安装任何第三方软件。在“开始菜单”搜索“磁盘清理”选择C盘系统会先扫描一遍可清理项目。这里要注意第一次扫描出来的只是“普通项目”真正的大头在“清理系统文件”按钮里。点击“清理系统文件”后系统会重新扫描。这一步会列出“Windows更新清理”“以前的Windows安装”“传递优化文件”“临时文件”等项目。“Windows更新清理”常常能清掉好几个G如果你确定不需要回滚到旧版本系统可以勾选“以前的Windows安装”。勾选完成后点击“确定”等待执行即可。除了图形界面磁盘清理也支持命令行方式cleanmgr /d C:如果希望按固定配置自动清理可以先打开设置面板cleanmgr /sageset:1在弹出的界面里勾选希望清理的项目保存配置。之后运行cleanmgr /sagerun:1系统就会按刚才保存的设置自动执行清理。这种方式很适合做成计划任务定期运行。2.2 开启存储感知让系统自动清理Windows 10 和 Windows 11 都提供了“存储感知”功能可以自动清理临时文件和回收站。开启它之后系统会在空间不足或定期时间点自动清理一些安全项减少手动操作。打开路径Windows 11设置 - 系统 - 存储 - 存储感知Windows 10设置 - 系统 - 存储 - 存储感知开启“自动清理临时文件”后可以设置运行频率比如“每周”或“空间不足时”。还可以点击“配置清理计划”让系统定期删除“回收站中超过一定天数的文件”和“下载文件夹中超过一定天数未使用的文件”。存储感知适合作为日常维护手段它能避免系统盘中积累大量临时文件但不能替代手动清理。像休眠文件、虚拟内存、开发工具缓存这类大型文件还是需要单独处理。2.3 手动清理 Windows 更新缓存Windows 更新下载的安装包都会存放在C:\Windows\SoftwareDistribution\Download这个目录在系统多次更新后会累积大量文件。正常情况下Windows 更新完成后会自动清理一部分但并不彻底尤其是在更新失败或反复下载的情况下缓存可能会占用几个G甚至十几个G。手动清理这个目录是安全的因为安装包只是下载缓存不是系统运行必需文件。如果系统正在下载或安装更新建议等更新完成后再清理或者先暂停更新。推荐使用管理员身份打开命令提示符依次执行下面的命令net stop wuauserv net stop cryptSvc net stop bits net stop msiserver rd /s /q C:\Windows\SoftwareDistribution\Download net start wuauserv net start cryptSvc net start bits net start msiserver解释一下每步的含义先停止 Windows Update 相关服务避免文件被占用然后强制删除下载缓存目录最后重新启动这些服务。执行完毕后打开C盘看剩余空间通常会有明显变化。3. 三个“隐形大户”关掉它们能腾出好几个G3.1 休眠文件 hiberfil.sys很多人在C盘根目录看到一个名为hiberfil.sys的文件却不知道它是什么。这个文件是 Windows 休眠功能使用的系统文件当你让电脑进入“休眠”状态时系统会把内存内容写入这个文件下次开机时直接恢复从而实现快速启动。问题在于hiberfil.sys默认大小约为物理内存的 40% 到 75%内存越大文件越大。如果你的电脑是 16GB 内存这个文件可能占 6GB 到 10GB32GB 内存可能占十几个G。如果你平时根本不用“休眠”功能而是习惯“关机”或“睡眠”可以关闭休眠来释放空间。先查看当前系统休眠状态powercfg /a然后以管理员身份执行powercfg /h off执行后hiberfil.sys会自动消失C盘立刻腾出对应空间。需要特别注意的是关闭休眠也会同时关闭 Windows 的“快速启动”功能因为快速启动依赖休眠文件的一部分机制。如果你非常在意开机速度不建议为了省空间而关闭休眠。如果之后想恢复休眠重新执行powercfg /h on即可恢复。3.2 虚拟内存 pagefile.syspagefile.sys是 Windows 的虚拟内存页面文件默认位于C盘根目录。当物理内存不足时系统会把一部分数据临时写入这个文件因此它在高内存占用场景下非常重要。我不建议直接删除或彻底禁用虚拟内存因为某些大型软件在内存不足时会直接崩溃。更合理的做法是把虚拟内存从C盘转移到其他盘比如D盘。这样做既保留了虚拟内存的功能又释放了C盘空间。具体步骤如下右键“此电脑” - 属性 - 高级系统设置。在“高级”选项卡 - 性能 - 点击“设置”。切换到“高级”选项卡 - 虚拟内存 - 点击“更改”。取消勾选“自动管理所有驱动器的分页文件大小”。选中C盘选择“无分页文件”点击“设置”。选中D盘选择“系统管理的大小”或“自定义大小”点击“设置”。点击“确定”重启电脑后生效。转移虚拟内存后C盘会释放相当于物理内存 1 到 2 倍的空间。需要提醒的是如果系统发生蓝屏内存转储文件默认写入C盘把分页文件移走后可能无法写入完整的内核转储但对普通用户影响很小。3.3 系统还原与卷影副本系统还原点和卷影副本也可能占用不少C盘空间。如果你曾设置过系统保护系统会在关键驱动安装、软件升级时自动创建还原点。时间久了旧还原点会积累大量卷影副本占用几个G空间。先查看当前系统保护占用情况管理员身份运行vssadmin list shadowstorage输出中可以看到“已使用空间”和“已分配空间”。如果想清理最旧的还原点可以执行vssadmin delete shadows /forC: /oldest这个命令只删除最旧的一个卷影副本不会一次性删光所有还原点相对安全。如果想彻底限制系统还原点的占用空间可以进入“系统保护”设置右键“此电脑” - 属性 - 系统保护选择C盘 - 配置在“最大使用量”处拖动滑块调小占用比例需要注意的是删除还原点意味着失去对应时间点的恢复能力。如果你最近系统状态正常可以考虑清理较旧的还原点但建议至少保留一个可用的还原点以防后续清理操作出问题。4. 一条命令定位大文件找出真正占空间的目录4.1 PowerShell 扫描C盘目录占用前面介绍的清理方法能清掉一部分空间但真正让C盘爆满的往往是某些具体的大目录。与其瞎猜不如让 PowerShell 帮我们扫描一遍C盘每个一级目录的大小按占用从大到小排列。打开管理员 PowerShell执行下面的脚本Get-ChildItem C:\ -Directory -Force -ErrorAction SilentlyContinue | ForEach-Object { $size (Get-ChildItem $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum [PSCustomObject]{ Path $_.FullName SizeGB [math]::Round($size / 1GB, 2) } } | Sort-Object SizeGB -Descending | Format-Table -AutoSize这个脚本会遍历C盘下的所有一级目录包括隐藏目录递归统计每个目录下的文件总大小最后按大小降序排列。第一次扫描可能需要几分钟因为要读取大量文件信息如果遇到权限不足的目录脚本会跳过不影响整体结果。执行后你会清晰看到Users、Windows、Program Files等目录各占多少空间。如果Users目录特别大说明用户数据是重灾区如果Windows目录特别大更新缓存或组件存储可能就是主因。4.2 扫描用户目录下的大文件很多时候C盘空间被用户目录里的隐藏缓存和下载文件占用。可以用下面的 PowerShell 脚本扫描用户常见目录下超过 1GB 的大文件$paths ( $env:USERPROFILE\Downloads, $env:USERPROFILE\Desktop, $env:USERPROFILE\Documents, $env:LOCALAPPDATA, $env:APPDATA ) Get-ChildItem $paths -Recurse -File -Force -ErrorAction SilentlyContinue | Where-Object { $_.Length -gt 1GB } | Sort-Object Length -Descending | Select-Object FullName, {NameSizeGB; Expression{[math]::Round($_.Length/1GB, 2)}} | Format-Table -AutoSize脚本会把所有超过 1GB 的文件路径列出来。看到结果后你可以逐一判断哪些是长期不用的安装包、压缩包或缓存文件然后移动或删除。这里要提醒不要直接删除不认识的.dll或.sys文件优先清理安装包、日志、临时文件、缓存目录。在文件资源管理器里也可以使用搜索技巧。打开C盘在右上角搜索框输入size:1GBWindows 会搜索出所有大于 1GB 的文件。这个技巧简单直接适合快速定位散落在各处的超大文件。4.3 几个最容易忽略的大文件藏身处结合日常排障经验下面这几个位置经常让人惊讶“原来空间被它吃了”C:\Windows.old系统大版本升级后的旧系统目录可能占 10GB 到 20GB。如果确定不需要回滚旧系统可以用磁盘清理工具的“以前的Windows安装”删除。C:\Users\用户名\AppData\Local\Temp用户临时文件目录积累大量临时安装包和缓存。C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Cache浏览器缓存长时间不清理可以达到几GB。C:\Users\用户名\Documents\WeChat Files微信文件默认保存位置聊天记录、图片、视频会快速增长很多人这个目录占了几十个G。C:\Users\用户名\.cache很多开发工具和AI工具的默认缓存目录例如 ComfyUI、Codex 等工具如果配置不当模型和工作流缓存会默认写入C盘。如果你在使用 ComfyUI、Codex 这类工具一定要检查它们的模型目录和输出目录是否在C盘。这类工具的大模型文件动辄几个G到几十个G建议把模型存储和输出目录迁移到D盘具体方法会在后面“治本方案”中介绍。5. 一键清理脚本bat PowerShell 组合5.1 脚本设计思路与安全边界如果你平时不想记住那么多命令可以做一个“一键清理脚本”。脚本的思路是只清理明确安全的临时文件和缓存不碰系统核心文件不删除用户文档不修改注册表。安全边界非常重要。脚本不会处理休眠文件、虚拟内存、系统还原点因为这些涉及系统功能取舍需要人工确认。脚本只负责清理以下内容用户临时目录系统临时目录回收站Windows 更新缓存预读取文件可选缩略图缓存同时脚本需要以管理员身份运行否则部分系统目录无法访问。如果你担心误删可以先创建还原点再执行。5.2 完整清理脚本与使用说明将下面的内容保存为clean_c.bat右键选择“以管理员身份运行”echo off chcp 65001 nul title C盘清理脚本 - 请以管理员身份运行 echo echo C盘安全清理脚本临时文件 / 更新缓存 echo echo. REM 检查管理员权限 net session nul 21 if %errorlevel% neq 0 ( echo [错误] 请右键选择“以管理员身份运行”! pause exit /b 1 ) echo [1/6] 清理用户临时文件夹 ... if exist %TEMP% rd /s /q %TEMP% 2nul echo [2/6] 清理系统临时文件夹 ... if exist %SystemRoot%\Temp rd /s /q %SystemRoot%\Temp 2nul echo [3/6] 清空回收站 ... powershell -NoProfile -Command Clear-RecycleBin -Force -ErrorAction SilentlyContinue echo [4/6] 停止更新相关服务并清理更新缓存 ... net stop wuauserv nul 21 net stop cryptSvc nul 21 net stop bits nul 21 net stop msiserver nul 21 if exist %SystemRoot%\SoftwareDistribution\Download rd /s /q %SystemRoot%\SoftwareDistribution\Download 2nul net start wuauserv nul 21 net start cryptSvc nul 21 net start bits nul 21 net start msiserver nul 21 echo [5/6] 清理 Windows 预读取文件 ... del /f /q %SystemRoot%\Prefetch\*.* 2nul echo [6/6] 清理缩略图缓存 ... del /f /q %LocalAppData%\Microsoft\Windows\Explorer\thumbcache_*.db 2nul echo. echo 清理完成建议重启电脑后查看C盘剩余空间。 pause关于编码建议在 VS Code 或 Notepad 中保存为 UTF-8 无 BOM 格式。如果运行时出现中文乱码可以把文件另存为 ANSI 编码再执行。脚本第 5 步清理 Prefetch 属于可选操作。预读取文件的作用是加快程序启动速度删除后第一次打开软件会稍微变慢但之后会重新生成。如果你不想影响启动速度可以把第 5 步整个删掉。5.3 组件存储清理DISM 命令Windows 的组件存储C:\Windows\WinSxS是系统组件的重要目录不能直接手动删除。但其中会保留大量旧版本组件这些内容需要用 DISM 命令清理。首先分析组件存储是否有可清理内容管理员身份执行DISM /Online /Cleanup-Image /AnalyzeComponentStore命令会输出类似“组件存储大小”和“可清理大小”的信息。如果可清理空间不大说明系统已经自己维护过了如果可清理空间较大再执行清理命令DISM /Online /Cleanup-Image /StartComponentCleanup这个命令会安全删除旧版本组件可能需要运行几分钟到十几分钟建议在空闲时间执行。执行过程中不要强制关闭命令行窗口否则可能造成系统组件损坏。如果你的系统盘很紧张还可以加上参数进一步整理DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase/ResetBase会将所有已安装更新的基础重置为当前状态清理效果更彻底但副作用是以后无法卸载已经安装的更新。除非你确定不需要卸载更新否则不建议加这个参数。6. 常见问题与避坑指南6.1 常见问题排查表清理C盘过程中你可能会遇到下面这些问题问题现象常见原因解决思路清理后重启C盘又满了软件缓存或更新文件正在重新生成用 PowerShell 扫描定位大目录再针对具体软件设置缓存路径删除临时文件时报“文件正在使用”有程序占用了临时目录中的文件关闭相关程序或者重启后再删除执行 powercfg /h off 后休眠文件还在没有管理员权限用管理员身份运行命令提示符再执行C盘显示红色但看起来没有大文件隐藏文件或系统文件没有显示在资源管理器中开启“显示隐藏文件”或用 PowerShell 扫描清理更新缓存后Windows 更新异常删除时更新服务正在运行重新启动 Windows Update或等待系统自动重新下载更新使用第三方清理软件后系统异常误删了系统核心文件通过系统还原点恢复严重时考虑重置系统6.2 这些操作千万别做C盘清理最怕的不是清不掉而是误删。下面几条是必须避开的“高危操作”不要手动删除C:\Windows\WinSxS文件夹。很多人把它当成垃圾文件实际上它是系统组件的存储目录直接删除会导致系统完全无法启动。正确做法是用 DISM 命令清理。不要手动删除C:\Windows\System32下的任何文件。这里存放了系统核心运行库删错一个文件可能直接蓝屏。不要随意清理AppData里不认识的目录。AppData 下存有大量软件配置和用户数据很多目录名看起来像乱码实际上包含软件登录状态、数据库文件。如果某个软件以后还能正常打开就不要动它。不要在确定不需要回滚前随意删除Windows.old。如果你刚升级完系统建议保留至少一周确认系统稳定后再清理。不要用rd /s /q C:\之类的命令“清理整盘”。这类命令是直接删除目录树一旦执行后果不可逆后悔药没有。清理C盘的原则是能明确判断是垃圾的才删拿不准的就先放着。7. 治本方案从“清理”到“预防”7.1 善用目录联接把大目录“搬”到其他盘很多软件的缓存路径是写死的不能通过图形界面修改。这种情况最适合使用 Windows 的“目录联接”功能也就是mklink /J命令。它的原理是把一个真实目录“映射”到另一个位置对用户程序来说原路径仍然存在访问时实际读写的是目标路径。举个例子。假设你在使用 ComfyUI 这类 AI 绘图工具模型目录默认在C盘占用几十个G你想迁移到D盘可以这样做先关闭相关程序确保没有进程在读取模型目录。在原位置把C:\Users\你的用户名\ComfyUI\models整个剪切到D:\AI\ComfyUI\models。打开管理员命令提示符执行mklink /J C:\Users\你的用户名\ComfyUI\models D:\AI\ComfyUI\models执行后原来的路径仍然存在但所有文件实际上存储在D盘。程序和系统都感知不到变化C盘空间却被释放了。这个方法同样适用于 npm 缓存、pip 缓存、Maven 本地仓库、浏览器缓存目录等。如果你想删除链接不要直接在资源管理器里删除最好用命令行rmdir C:\Users\你的用户名\ComfyUI\models这个命令只会删除目录联接本身不会删除 D 盘的真实文件。7.2 修改软件默认缓存与文件保存位置目录联接是兜底方案更理想的做法是在软件设置里直接修改缓存路径。微信设置 - 文件管理 - 更改把文件保存路径改成 D 盘。这个设置对C盘空间影响最大尤其是聊天记录多的人。浏览器在设置里修改“下载内容”默认位置改为 D 盘。浏览器缓存也可以在设置中清除。开发工具npm 可以通过npm config set cache D:\Cache\npm修改缓存目录Maven 可以通过修改settings.xml中的localRepository指向 D 盘Python 的 pip 缓存可以通过设置PIP_CACHE_DIR环境变量指向D盘。新软件安装时遇到默认安装目录为C:\Program Files时尽量手动改为 D 盘。虽然安装时多一步操作但长期下来能避免 C 盘被各种大型软件塞满。如果你的电脑已经有很多大型软件装在C盘可以尝试“设置 - 应用 - 安装的应用”选择某个应用后点击“移动”部分应用支持从C盘移动到其他分区。但要注意并不是所有应用都支持移动比如系统核心组件就无法移动。7.3 C盘扩容的一般思路与风险提醒如果清理之后C盘还是紧张扩容是一个选择但需要谨慎操作。Windows 自带的“磁盘管理”工具支持“压缩卷”和“扩展卷”。要扩展C盘前提是C盘右侧紧挨着未分配空间。也就是说你需要在C盘旁边先腾出未分配空间这通常意味着要先删除或压缩D盘分区。整个过程会把磁盘分区结构重新调整存在数据丢失风险。如果你的D盘有大量数据又没有备用移动硬盘备份我不建议贸然操作。更稳妥的做法是备份C盘和D盘的重要数据到移动硬盘或网盘。使用可靠的第三方分区工具调整分区大小。调整分区前先创建系统还原点并确保电脑接入电源。操作过程中不要强制断电防止分区表损坏。比起扩容我更推荐优先做好前面提到的清理和预防措施。因为很多人的C盘空间其实是被缓存在潜移默化吃掉的只要把缓存路径改好定时清理C盘通常不会轻易爆满。如果你按照上面的顺序操作一遍先做系统工具清理再关闭休眠或转移虚拟内存然后用脚本扫一遍临时文件最后用 PowerShell 定位残留的大文件C盘一次性腾出十几个G并不夸张。你的C盘“大头”到底在哪个目录也欢迎在评论区分享你的排查结果。