记录借助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 空间。
所以我现在越来越觉得,自动化不是为了炫技,而是为了减少那些反复发生的小堵点。
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐
记录2024年学习TikTok直播运营的心得,整理与合作机构交流获得的实操经验,为跨境内容营销与直播业务探索提供参考。
围绕竞争研究、关键词研究、链接建设、排名跟踪与页面优化,分享Semrush工具的主要功能及网站搜索优化应用思路。
整理Shopify独立站日常运营中常用的插件,分享功能选择与实际使用思路,帮助品牌结合业务阶段评估适合自己的工具。
介绍Shopify促销活动中倒计时功能的使用场景,讨论主题内置功能与插件配置,分享限时活动页面的运营实践。
梳理独立站促销策划与站内运营工作,涵盖页面、产品、评论、插件和营销准备,帮助品牌系统安排促销活动的执行流程。