记录借助AI排查Windows电脑卡顿与磁盘空间不足的经历,梳理微信文件、旧安装包、缓存和日志等占用来源,以及预览、确认、执行和定期维护的工作思路。

是打开 Codex 会卡,切换窗口会卡,微信加载文件会卡,连最基础的操作都像在等一个不想上班的人回消息。
明明上次才清过,怎么过不了几天,C 盘、D 盘又快满了?
后来我让 AI 帮我系统地查了一遍,才发现问题根本不是“垃圾文件太多”这么简单,而是有几个目录一直在悄悄变大。
因为最近我一直在用 Codex 处理客户项目、分析表格、写 SOP、做自动化方案。任务一多,电脑就明显吃力。
当系统盘空间太低时,Windows 的缓存、虚拟内存、软件临时文件都没有足够空间运转。这个时候,任何稍微重一点的软件都会变慢。
我以前清电脑,基本就是删下载、清回收站、清浏览器缓存。
D 盘里有很多几年前的 Adobe、WPS、微信旧版本安装文件。
腾讯、飞书、钉钉、浏览器、Codex、WPS、PDF 工具,都在不断产生缓存。
桌面其实也在 C 盘。你以为只是放在桌面,实际上是在吃系统盘空间。
比如日志文件、插件缓存、临时下载、旧版本安装残留。它们不会提醒你,但会一点点把电脑塞满。
-
-
-
-
D 盘旧 Adobe 2019 文件:约 9.8GB
-
-
-
很多时候,电脑不是不能用了,而是被各种“看不见的文件”拖住了。
它不是那种乱删文件的清理工具,而是只清理安全目录,比如:
因为清理电脑这件事,最大的问题不是“会不会清”,而是“敢不敢清”。
很多人电脑越来越卡,不是不知道要清理,而是不敢删。
所以这个脚本的价值不是“特别高级”,而是它把风险边界先划清楚。
它为了告诉我“每个目录能清多少”,会一个个目录递归统计大小。
慢一点,但会统计每个目录大概能清多少。适合第一次运行,或者想看看到底是谁又把 C 盘吃掉了。
直接清理安全目录,不再逐个计算体积,所以速度快很多。
一边清理,一边统计清掉了多少。适合我想复盘的时候用。
它让我意识到,很多自动化不是一开始就完美的。先能用,再根据真实使用场景优化,反而更符合工作流。
它只是把一个反复出现的小麻烦,变成一个可以重复执行的动作。
一边是项目要推进,一边是 Codex 打开慢、微信切换慢、文件加载慢。那种感觉不是“电脑慢一点”这么简单,而是你明明知道自己要做什么,但工具一直拖着你。
我让 AI 把这个动作沉淀成了一个可以重复执行的脚本。
param([switch]$Execute,[switch]$Detailed)$ErrorActionPreference = "SilentlyContinue"
function Get-DirSizeBytes {param([string]$Path)if (-not (Test-Path -LiteralPath $Path)) { return 0 }$sum = (Get-ChildItem -LiteralPath $Path -Force -Recurse -File -ErrorAction SilentlyContinue |Measure-Object Length -Sum).Sumif ($null -eq $sum) { return 0 }return [double]$sum}
function Clear-SafeDirectory {param([string]$Path,[string]$Reason)if (-not (Test-Path -LiteralPath $Path)) { return $null }$resolved = (Resolve-Path -LiteralPath $Path).Path$allowed = ($resolved -like "C:\Users\10032\AppData\Local\*" -or$resolved -like "C:\Users\10032\AppData\Roaming\*" -or$resolved -like "C:\Windows\Temp*")if (-not $allowed) {return [pscustomobject]@{Status = "Skipped - outside allowlist"GB = 0Path = $resolvedReason = $Reason}}$size = 0if ((-not $Execute) -or $Detailed) {$size = Get-DirSizeBytes -Path $resolved}if ($Execute) {Get-ChildItem -LiteralPath $resolved -Force -ErrorAction SilentlyContinue |Remove-Item -Recurse -Force -ErrorAction SilentlyContinue$status = "Deleted"} else {$status = "Preview only"}return [pscustomobject]@{Status = $statusGB = if (($Execute) -and (-not $Detailed)) { $null } else { [math]::Round($size / 1GB, 2) }Path = $resolvedReason = $Reason}}
$targets = @(@{ Path = "$env:TEMP"; Reason = "Windows user temp files" },@{ Path = "C:\Windows\Temp"; Reason = "Windows temp files" },@{ Path = "C:\Users\10032\AppData\Local\Google\Chrome\User Data\Default\Cache"; Reason = "Chrome cache" },@{ Path = "C:\Users\10032\AppData\Roaming\Tencent\xwechat\log"; Reason = "WeChat logs" },@{ Path = "C:\Users\10032\AppData\Local\npm-cache"; Reason = "npm package cache" },@{ Path = "C:\Users\10032\AppData\Roaming\Codex\web\Codex\Default\Partitions\codex-browser-app\Cache"; Reason = "Codex browser cache" })
这段代码最关键的不是“删除”。
而是前面的安全判断。
它只允许在明确的缓存目录里执行清理。如果路径不在允许范围内,就跳过。
这就是我觉得它比普通清理更安心的地方:
不是让 AI 拿着权限到处删,而是先给它画好边界。
完整脚本我保存在本地,日常使用时有三种方式:
预览模式:
powershell -ExecutionPolicy Bypass -File "safe_c_drive_cleanup.ps1"
powershell -ExecutionPolicy Bypass -File "safe_c_drive_cleanup.ps1" -Execute
powershell -ExecutionPolicy Bypass -File "safe_c_drive_cleanup.ps1" -Execute -Detailed
它可以在我真的急、真的被工作卡住的时候,帮我把一个混乱的问题拆开,定位原因,清掉阻塞,再把解决动作变成下次还能复用的机制。
如果每天都有文件进来,每天都有项目打开,每天都有微信资料、客户素材、缓存日志进来,但从来不整理,它迟早会堵住。
这次清理电脑,本质上不是为了释放几十 GB 空间。
所以我现在越来越觉得,自动化不是为了炫技,而是为了减少那些反复发生的小堵点。
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐
分享使用闪剪AI制作数字人及AI探班视频的操作过程,从选择模板到开始创作,记录2025年12月体验到的视频制作功能与使用步骤。
记录与Alex和Wayne交流后的感想,围绕AI Agent、自动化工具和业务提效,分享出海从业者学习AI、交流经验与探索新工作方式的思路。
记录英文AI资讯与工具测评网站的搭建尝试,分享AI站长、SEO优化、内容更新及联盟变现规划,探索将自动化流程用于网站日常运营。
整理出海指南AI私享会中的DTC运营实践,围绕AI工具、数字员工和自动化工作流,分享跨境营销从个人提效走向流程改造的思路。
分享三个网站AI可见性检查工具,结合GA4流量来源和爬虫访问规则,了解网站能否被AI访问、品牌是否被提及,并区分允许抓取与实际收录的不同含义。