
2025/12/08
清理c盘代码
用powershell与cleanmgr组合的清理c盘代码模板批量扫缓存不碰系统文件
对于喜欢高效、甚至想批量管理多台电脑的朋友来说,手动点点点清理 C 盘实在是太慢了。我们可以利用 Windows 强大的命令行工具,编写一个简单的脚本来实现“一键清理”。
这里有一套基于 PowerShell 和 Cleanmgr 的自动化清理方案。
步骤一:设定 Cleanmgr 清理模板
首先,我们需要告诉 Windows 的磁盘清理工具(cleanmgr)到底要清理哪些项目。这需要先配置一个“模板”。
-
运行配置命令
- 以管理员身份运行命令提示符(CMD)或 PowerShell。
- 输入命令:
cleanmgr /sageset:9并回车。 - 这里的
9是一个任意的编号(0-65535 都可以),你可以把它理解为“配置档 9”。
-
勾选清理项
- 系统会弹出一个磁盘清理设置窗口。
- 在这里,你可以勾选所有你想在自动清理时删除的项目:
- Windows 更新清理
- 临时文件
- 回收站
- 缩略图
- 设备驱动程序包
- 勾选完后点击“确定”。这会把你的选择保存到注册表中,编号为 9。
步骤二:编写一键执行脚本
接下来,我们写一个 PowerShell 脚本来调用这个配置,并顺手清理一些 cleanmgr 可能会漏掉的地方。
你可以把下面的代码保存为 CleanC.ps1 文件:
# 请求管理员权限
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }
Write-Host ">>> 开始清理 C 盘垃圾..." -ForegroundColor Green
# 1. 运行配置好的 cleanmgr (配置档 9)
Write-Host "1. 正在运行磁盘清理 (配置档 9)..."
Start-Process cleanmgr -ArgumentList "/sagerun:9" -Wait
# 2. 清理 Temp 文件夹 (强制删除)
Write-Host "2. 正在清理用户 Temp 文件夹..."
Remove-Item -Path $env:TEMP\* -Recurse -Force -ErrorAction SilentlyContinue
# 3. 清理 Windows 更新下载缓存 (需要先停服务)
Write-Host "3. 正在清理 Windows 更新下载缓存..."
Stop-Service -Name wuauserv -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Service -Name wuauserv
# 4. 清理预读取 (可选,建议保留以加快启动速度)
# Write-Host "4. 正在清理 Prefetch..."
# Remove-Item -Path "C:\Windows\Prefetch\*" -Recurse -Force -ErrorAction SilentlyContinue
Write-Host ">>> 清理完成!" -ForegroundColor Green
Start-Sleep -Seconds 3如何使用
- 右键点击保存好的
CleanC.ps1文件。 - 选择“使用 PowerShell 运行”。
- 脚本会自动申请管理员权限,然后开始全自动清理。
配合手动操作更佳
代码脚本非常适合清理系统缓存和临时文件,但对于用户产生的大文件(如放在桌面的视频、下载的压缩包),脚本很难判断哪些该删哪些该留。
因此,建议的清理策略是:
- 每周运行一次这个脚本,保持系统轻量。
- 每月手动检查一次下载目录和桌面,把大文件搬到 D 盘。
用代码解放双手,让清理 C 盘变得既酷又高效。
延伸阅读
更多文章
清理C盘订阅
获取C盘清理资讯
接收关于C盘清理、系统优化的技巧和更新


