news 2026/9/24 15:47:49

Windows卸载残留清理指南:Program Files、ProgramData、AppData与注册表深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows卸载残留清理指南:Program Files、ProgramData、AppData与注册表深度解析

1. 为什么“卸载不干净”不是软件的问题,而是Windows设计逻辑的必然结果

你删掉一个软件,点完“确定”,弹出“卸载完成”,桌面图标没了,开始菜单空了——你以为结束了?不。Windows系统里根本不存在“彻底删除”这回事,它只做一件事:把你能看见的、能点开的、能启动的入口关掉。剩下的,全扔进几个你几乎从不打开的角落里,像老房子阁楼里堆着的旧家具,落满灰尘,但始终没被搬走。

这四个角落,就是标题里提到的Program Files、ProgramData、AppData、%TEMP%,它们不是乱七八糟的垃圾堆,而是Windows为不同目的设计的、有明确分工的“数据仓库”。理解它们的分工逻辑,比背诵清理步骤重要十倍。

  • Program Files(含x86)是软件的“躯干”:可执行文件(.exe)、核心库(.dll)、界面资源(.png/.xml)都放在这里。卸载程序默认只删它自己安装的主目录,但很多软件会把共用组件(比如Visual C++运行库、.NET Framework插件、Java JRE)悄悄塞进同一级目录下其他文件夹里,卸载器一看“这不是我建的”,直接跳过。

  • ProgramData是软件的“公共大脑”:所有用户共享的配置、许可证密钥、更新缓存、数据库文件都存在这里。比如Adobe全家桶的字体缓存、VMware的虚拟机镜像索引、SolidWorks的模板库,卸载时根本不会动它——因为下一个用户装同款软件时还能复用。但你换电脑、重装系统后,这些残留就成了纯粹的磁盘占位符。

  • AppData是软件的“私人日记本”,分三块:

    • Roaming(漫游):同步到微软账户的设置,比如Chrome书签、Edge密码、OneDrive偏好;
    • Local:本地专属数据,比如微信的聊天记录缓存、剪映的工程临时文件、PyCharm的索引数据库;
    • LocalLow:低权限应用(如网页沙箱、Flash遗留插件)的数据。
      卸载器通常只清Roaming里的注册表项,Local和LocalLow里的几GB缓存、日志、崩溃dump,全靠你自己手动翻。
  • %TEMP%(即C:\Users\用户名\AppData\Local\Temp)是软件的“临时工棚”:安装包解压、升级补丁生成、编译中间文件、PDF渲染缓存……全扔这儿。系统每天自动清理,但很多软件(尤其是IDE、CAD、视频编辑器)会把关键临时文件设为“永不删除”,导致几百MB甚至几GB的.tmp.log.cache文件常年霸占C盘。

而真正让问题雪上加霜的,是注册表——它不是数据库,而是Windows的“神经系统”。每个软件安装时,会在HKEY_LOCAL_MACHINE\SOFTWAREHKEY_CURRENT_USER\Software下写入成百上千个键值,记录:

  • 它装在哪儿(InstallDir
  • 它的文件关联(.py文件双击用哪个Python解释器)
  • 它的COM组件注册(CLSID
  • 它的启动项(RunRunOnce
  • 它的右键菜单扩展(shell\open\command

卸载器删注册表,就像拆炸弹——剪错一根线,整个系统可能蓝屏。所以绝大多数卸载器只删自己明确写入的主键,对子键、字符串值、二进制数据(比如许可证加密blob)选择性失明。久而久之,注册表里就堆满了“幽灵引用”:指向早已不存在的D:\Program Files\OldApp\app.exe的启动项,或指向C:\Users\OldUser\AppData\Local\Temp的日志路径。这些碎片本身不占空间,但当系统尝试读取它们时(比如设备管理器加载驱动、Explorer渲染右键菜单),就会触发错误:“由于其配置信息(注册表中的)不完整或已损坏,Windows无法启动这个硬件设备”。

我做过一个实测:在一台使用3年的Win10机器上,用专业工具扫描注册表,发现27%的HKEY_LOCAL_MACHINE\SOFTWARE\Classes键值指向已删除的EXE路径;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts里,有14个.ps1(PowerShell脚本)关联项指向D:\Program Files (x86)\NodeJS\npm.ps1——而Node.js早被卸载,只剩空目录。这就是为什么你常看到报错:“npm : 无法加载文件 D:\Program Files (x86)\NodeJS\npm.ps1,因为在此系统上禁止运行脚本”。系统还在找它,但它连影子都没了。

所以,“卸载不干净”不是软件厂商偷懒,而是Windows的模块化设计决定的:安全第一,兼容第二,干净第三。你要做的,不是对抗系统,而是理解它的仓库地图,带着清单进去,一样一样核对清点。下面这四步,每一步都对应一个仓库的清理逻辑,不是盲目删除,而是精准归零。

2. 第一步:用“控制面板+PowerShell”双重验证,揪出所有伪装成“已卸载”的残余服务与计划任务

很多人以为卸载完就万事大吉,结果某天发现CPU莫名占用30%,打开任务管理器一看,进程名是oldapp_service.exe,属性里显示“未知公司”,路径却是C:\Program Files\OldApp\service\——但这个文件夹明明删了!真相是:卸载器删了主程序,却忘了停用并删除Windows服务。服务一旦注册进系统,就会在每次开机时自动拉起,哪怕EXE文件已被删,系统也会报错并重试,形成恶性循环。

同样危险的是计划任务。比如某PDF工具卸载后,它的“每日自动备份文档”任务还躺在Task Scheduler Library\OldPDF\Backup里,触发条件设为“登录时”,结果你每次开机,系统都在后台反复尝试执行一个不存在的脚本,日志里堆满0x80070002(文件未找到)错误。

这一步的核心,是绕过图形界面的视觉欺骗,用系统底层命令把所有“活着的残余”逼出来。操作前请务必以管理员身份运行PowerShell——右键开始菜单→“Windows PowerShell(管理员)”,否则权限不足,很多服务根本查不到。

2.1 扫描并终止残留服务

先列出所有非系统服务(排除WindowsMicrosoft开头的官方服务):

Get-Service | Where-Object {$_.Status -eq "Running" -and $_.Name -notmatch "^wmi|^winmgmt|^eventlog|^dhcp|^dnscache"} | Select-Object Name,DisplayName,Status,StartType | Format-Table -AutoSize

这条命令会输出所有正在运行、且名字不含微软关键词的服务。重点关注DisplayName列——它显示的是服务的中文名,比Name(内部ID)更易识别。比如你看到:

Name DisplayName Status StartType ---- ----------- ------ --------- AcroTray Adobe Acrobat Tray Helper Running Automatic OldAppUpdateSvc OldApp Auto Update Service Running Automatic

AcroTray是Adobe正常服务,但OldAppUpdateSvc明显可疑。立刻停止并禁用它:

Stop-Service -Name "OldAppUpdateSvc" -Force Set-Service -Name "OldAppUpdateSvc" -StartupType Disabled

-Force参数强制终止,哪怕服务正卡在“停止中”。接着,去C:\Program Files\OldApp\C:\Program Files (x86)\OldApp\手动确认该目录是否存在。如果存在,直接删;如果不存在,说明服务是“幽灵服务”,需从注册表清除。

提示:别急着删注册表!先用sc qc "OldAppUpdateSvc"查看服务配置,输出里会有BINARY_PATH_NAME字段,显示EXE路径。如果路径指向一个不存在的文件(如D:\Program Files\OldApp\svc.exe),那这就是典型的注册表残留,必须清理。

2.2 清理计划任务中的“僵尸任务”

计划任务藏得更深,图形界面里要逐层展开才能看到。用PowerShell一行扫净:

Get-ScheduledTask | Where-Object {$_.TaskPath -notmatch "^\\Microsoft\\|^\\Adobe\\|^\\Google\\"} | Select-Object TaskName,TaskPath,State,Author | Format-List

这条命令过滤掉微软、Adobe、Google等大厂的合法任务,只显示第三方任务。你会看到类似:

TaskName : DailyBackup TaskPath : \OldApp\ State : Ready Author : OldApp Inc.

立即删除:

Unregister-ScheduledTask -TaskName "DailyBackup" -TaskPath "\OldApp\" -Confirm:$false

-Confirm:$false关闭确认提示,批量操作时省事。注意:TaskPath必须带反斜杠,比如\OldApp\,不能写成OldApp,否则报错。

2.3 检查启动项里的“影子进程”

很多软件把启动项藏在注册表深处,而不是常见的“启动”文件夹。用PowerShell直捣黄龙:

# 检查当前用户的启动项 Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -ErrorAction SilentlyContinue | Select-Object PSChildName,* # 检查所有用户的启动项 Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" -ErrorAction SilentlyContinue | Select-Object PSChildName,*

输出里会显示每个启动项的名字(PSChildName)和对应的命令路径。如果路径指向C:\Program Files\OldApp\launcher.exe且该文件不存在,记下PSChildName(比如OldAppTray),然后删除:

Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "OldAppTray" -ErrorAction SilentlyContinue

注意:HKLM(本地机器)下的启动项影响所有用户,删除前务必确认路径真实存在。曾有个案例:某用户误删了OneDrive的启动项,导致同步图标消失,不得不重装OneDrive。所以我的习惯是:先用Test-Path "C:\Path\To\Executable.exe"验证路径,再删注册表项。

这一步做完,你的任务管理器里将不再有陌生进程,开机速度会明显提升。我经手的案例中,约65%的“卸载后卡顿”问题,根源都在这一步没做——用户只删了图标,没动服务和任务,系统每天都在白忙活。

3. 第二步:用Everything精准定位Program Files与ProgramData里的“孤儿文件夹”

卸载器删目录,就像搬家时只打包看得见的行李,却把衣柜深处的旧毛衣、床底积灰的纸箱全留下。Program FilesProgramData就是这样的“衣柜”。手动翻?太慢。用Windows自带的搜索?漏检率超40%(它不索引隐藏文件、系统文件、长路径)。正确姿势是:Everything——一款10MB大小、秒级响应的文件搜索引擎,它直接读取NTFS卷的MFT(主文件表),比系统搜索快100倍。

3.1 安装与基础配置

去官网voidtools.com下载Everything(免费,无广告),安装时取消勾选“安装Ask Toolbar”(这是唯一需要警惕的选项)。首次启动后,它会自动建立索引,几秒内完成。点击右上角齿轮图标→“选项”→“索引”→勾选:

  • C:\Program Files
  • C:\Program Files (x86)
  • C:\ProgramData

确保“忽略大小写”和“启用正则表达式”已勾选——这是后续精准筛选的关键。

3.2 筛选“孤儿文件夹”的三重过滤法

所谓“孤儿”,指文件夹名包含软件名,但内部没有.exe主程序,且创建/修改时间远早于当前日期(说明长期未更新)。用Everything的搜索语法实现:

第一重:按软件名模糊匹配假设你要清理已卸载的“RobotStudio 6.08”,在Everything搜索框输入:

robotstudio parent: "C:\Program Files" | parent: "C:\Program Files (x86)" | parent: "C:\ProgramData"

parent:指定父目录,|是OR逻辑。结果会列出所有含robotstudio的文件夹,包括C:\Program Files\RobotStudio 6.08\C:\ProgramData\ABB\RobotStudio\C:\Program Files (x86)\Common Files\ABB\

第二重:排除含主EXE的“活目录”在上一步结果上,右键→“在结果中搜索”,输入:

!*.exe

!表示NOT,即排除所有含.exe文件的文件夹。此时剩下的,全是“只有DLL、配置、日志,没有可执行文件”的纯数据目录——99%是残留。

第三重:按时间锁定“陈年旧物”再右键→“在结果中搜索”,输入:

modified:<2023-01-01

把时间设为你卸载该软件的大致日期之前。比如RobotStudio 6.08是2022年装的,2023年卸载,那么设<2023-01-01就能筛出所有2023年前创建且从未更新过的文件夹。

最终结果,就是一份精准的“待清理清单”。例如:

  • C:\ProgramData\ABB\RobotStudio\LicenseCache\(许可证缓存,卸载后无用)
  • C:\Program Files (x86)\Common Files\ABB\Shared\(共用组件,新版RobotStudio已不用)
  • C:\Program Files\RobotStudio 6.08\Help\(帮助文档,新版在线获取)

3.3 安全删除的“三不原则”

看到清单别急着全删!遵循我的“三不原则”:

  • 不删Common FilesWindows Installer下的文件夹:这些是系统级共用库,删了可能导致其他软件崩溃。比如C:\Program Files (x86)\Common Files\Microsoft Shared\是Office依赖,动它等于自毁。
  • 不删空文件夹C:\ProgramData\Package Cache\下有大量空文件夹,那是Windows Installer的缓存索引,删了重装软件时会重新下载,浪费流量。
  • 不删LogsCrashDumps里的最新文件C:\Users\Administrator\AppData\Local\CrashDumps\里最新的.dmp文件可能帮你诊断当前问题,保留最近7天的,删更早的。

实操时,右键文件夹→“打开路径”,先人工确认里面内容。我见过最坑的案例:某用户删了C:\Program Files\Internet Explorer\,以为IE已淘汰,结果发现这是Edge的底层渲染引擎路径,删完Edge打不开网页。所以,一切删除前,先用Everything查路径是否被其他进程占用:右键文件夹→“查看文件被哪些进程使用”,如果显示explorer.exesvchost.exe,立刻停手。

这一步完成后,Program FilesProgramData里的“显性残留”基本清零。你会发现C盘瞬间多出2-5GB空间——这些不是垃圾,而是被遗忘的“数字化石”。

4. 第三步:深度清理AppData里的“三座大山”——Local、Roaming、LocalLow

AppData是卸载残留的重灾区,因为它分三层,每层逻辑不同:

  • Roaming:同步数据,删了会影响云账户(如OneDrive、Outlook设置);
  • Local:本地缓存,删了最多重生成,但可能丢失未同步的聊天记录;
  • LocalLow:沙箱数据,删了最安全,但常被忽略。

很多人用“磁盘清理”删%TEMP%,却不敢碰AppData,怕删错。其实只要分清层级,风险极低。关键工具还是Everything,但这次搜索逻辑要变。

4.1 Roaming层:只删“绑定已卸载软件”的配置

Roaming里存的是HKEY_CURRENT_USER\Software的镜像,结构和注册表一致。比如卸载了Oracle 19c,它的配置就在:C:\Users\用户名\AppData\Roaming\Oracle\

用Everything搜索:

oracle parent: "C:\Users\用户名\AppData\Roaming" !outlook !onedrive !microsoft

!outlook等是排除关键词,避免误删微软生态数据。结果里,Oracle\Oracle\product\Oracle\inventory\全部可删——因为Oracle已卸载,这些配置再也用不上。

但要注意:有些软件用Roaming存用户数据,比如微信PC版的WeChat Files在Roaming里。如果你微信还装着,就不能删WeChat Files;如果微信也卸载了,那整个WeChat Files文件夹就是待清理目标。

实操心得:Roaming层清理,我建议用“反向验证法”。打开注册表编辑器(regedit),定位到HKEY_CURRENT_USER\Software\,找到对应软件的主键(如Oracle),右键→“导出”备份。然后在Everything里搜同名文件夹,一一对应删除。这样100%精准,不怕误伤。

4.2 Local层:聚焦“缓存”与“临时数据”,放过“用户数据”

Local层最大,常占几十GB。核心策略是:缓存(Cache)必删,用户数据(UserData)慎删,日志(Logs)按需删。

  • 缓存文件夹特征:名字含CachecachetemptmpDownloadUpdate。比如:
    • C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Cache\
    • C:\Users\用户名\AppData\Local\JianyingPro\User Data\ca\(剪映的素材缓存)
    • C:\Users\用户名\AppData\Local\Temp\(全局TEMP)

用Everything搜:

cache | temp | tmp parent: "C:\Users\用户名\AppData\Local" !windows !microsoft

结果里,除了Temp,还有C:\Users\用户名\AppData\Local\Packages\下的大量AC\TempINetCache文件夹——这些都是UWP应用的缓存,可全删。

  • 用户数据文件夹特征:名字含User DataDocumentsSettings,且内部有.db(数据库)、.json(配置)、.dat(数据)文件。比如:
    • C:\Users\用户名\AppData\Local\微信\(含Msg文件夹,存聊天记录)
    • C:\Users\用户名\AppData\Local\JetBrains\PyCharm2023.1\(含configsystem,存项目索引)

判断标准:打开文件夹,看是否有*.db文件。如果有,且你仍用该软件,就别动;如果软件已卸载,.db就是废文件,可删。

  • 日志文件夹:路径含LogsLogFilescrashdumps。比如:
    • C:\Users\Administrator\AppData\Local\CrashDumps\(崩溃转储)
    • C:\Users\用户名\AppData\Local\Temp\(临时日志)

我的清理规则:CrashDumps留最近7天,Temp全清(系统重启后自动重建),其他Logs按需——如果某软件报错频繁,先看日志再删。

4.3 LocalLow层:一键清空的“安全区”

LocalLow是最低权限区域,专供浏览器插件、PDF阅读器沙箱等使用。里面的东西,删了不影响系统,重装软件会自动重建。搜索语法最简单:

parent: "C:\Users\用户名\AppData\LocalLow"

结果里,C:\Users\用户名\AppData\LocalLow\Temp\C:\Users\用户名\AppData\LocalLow\Microsoft\CryptnetUrlCache\(IE缓存)、C:\Users\用户名\AppData\LocalLow\Adobe\(Flash遗留)全可删。

注意:LocalLow\Microsoft\Windows\GameOverlay是Xbox Game Bar的覆盖层缓存,删了游戏里不显示FPS计数器,但不影响游戏本身。如果你不用Game Bar,放心清。

这一步做完,AppData里的“隐性残留”被连根拔起。你会发现微信启动变快(缓存重建后更高效),Chrome标签页切换更顺(清掉了陈旧的渲染缓存),甚至某些报错(如core temp传感器读数异常)也会消失——因为旧驱动的临时配置被清除了。

5. 第四步:注册表清理——不是删键,而是“断链”与“归零”

注册表清理是雷区,90%的蓝屏源于乱删。但标题说“注册表和文件夹残留一起清”,意味着必须做。我的方法论是:不追求“删干净”,只做“断连接”和“归零值”。把注册表当成一张交通地图,不拆路,只拆掉通往已废弃地址的路标。

5.1 用RegScanner定位“幽灵路径”

手动翻注册表?HKEY_LOCAL_MACHINE\SOFTWARE下有上万键,眼睛看花也找不到。用RegScanner(NirSoft出品,免费便携)——它像Everything之于文件,是注册表的搜索引擎。

下载解压后,直接运行RegScanner.exe,无需安装。点击“扫描”→“扫描注册表”→在“扫描字符串”框输入:

C:\Program Files\OldApp D:\Program Files (x86)\NodeJS C:\Users\用户名\AppData\Local\Temp

(把你已知的残留路径全列进去,用换行分隔)

扫描模式选“整个注册表”,勾选“仅扫描字符串值”(避免扫二进制数据,速度更快)。几秒后,结果列表会显示所有包含这些路径的注册表项,包括:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ABC123...}下的InstallLocation
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\OpenWithProgids下的npm.ps1关联
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OldAppUpdateSvc\ImagePath下的服务路径

5.2 “断链”操作:只删字符串值,不动键本身

对搜索结果里的每一项,右键→“编辑值”:

  • 如果是REG_SZ(字符串)或REG_EXPAND_SZ(可扩展字符串),且值数据(Value Data)是已删除的路径(如D:\Program Files (x86)\NodeJS\npm.ps1),双击值数据,清空内容,点确定。这就是“断链”——路径没了,但键还在,系统不会报错。
  • 如果是REG_MULTI_SZ(多字符串),比如Run启动项,里面有多行路径,只删指向已删除EXE的那一行,其他保留

绝对不要右键→“删除”整个键!比如Uninstall\{ABC123...}键下,除了InstallLocation,还有DisplayNameDisplayVersion,删了整个键,控制面板的“已安装程序”列表就少一条,但系统其他地方可能还在引用它。

实操避坑:曾有个用户删了HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{...}\InprocServer32键,导致Excel打不开——因为这是COM组件注册,删了等于切断Excel和插件的通信。正确做法是:只清空InprocServer32的值数据,让它变成空字符串,系统加载时跳过即可。

5.3 “归零”操作:修复权限与数值异常

很多报错源于注册表值被篡改,而非路径错误。比如热搜词里提到的:

  • 电脑注册表keyboardindicators数值变成了2147483648(这是-2147483648的无符号表示,正常应为0或1,表示大小写/数字键指示灯状态)
  • edge 注册表 主页被恶意软件改成钓鱼网址

用RegScanner搜keyboardindicators,找到键值后,双击→把数值改成0(关闭指示灯)或1(开启)。搜edgehomepage,找到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\Homepage,清空值数据,让Edge回归默认主页。

对于权限问题(如注册表权限问题),右键搜索结果→“权限”→点“高级”→“添加”→输入Administrators→勾选“完全控制”→确定。这样你就能编辑被锁定的键值。

这一步完成后,那些经典的报错将消失:

  • npm : 无法加载文件 ... 因为在此系统上禁止运行脚本ExecutionPolicy注册表项被重置为RemoteSigned
  • 由于其配置信息(注册表中的)不完整或已损坏,windows 无法启动这个硬件设备→ 设备管理器里不再显示黄色感叹号
  • regsvr32 "C:\Program Files\Locale Emulator\LEContextMenuHandler.dll"加载失败→ DLL路径注册被清空,不再尝试加载

注册表清理不是追求“零残留”,而是让系统回到一个“稳定可预测”的状态。我的经验是:一次清理,解决80%的启动报错和功能异常。

6. 终极验证与长效防护:用Process Monitor实时监控卸载全过程

以上四步做完,你以为就结束了?不。真正的高手,会在卸载新软件时,就预防残留。这就用到Process Monitor(ProcMon)——Sysinternals套件里的终极监控工具,它能记录软件安装/卸载时,对文件系统和注册表的每一个操作。

6.1 卸载前布控:捕获“干净基线”

下载live.sysinternals.com/Tools/ProcMon.exe,右键→“以管理员身份运行”。首次运行,它会提示“Filter”,点“是”。然后:

  • 点工具栏“捕获”按钮(红色圆圈),确保它是按下状态(表示开始记录)
  • 在“筛选器”→“筛选器”→点“重置”→点“添加”
  • 设置:OperationisRegSetValueInclude(只关注注册表写入)
  • 再加一条:OperationisCreateFileInclude(只关注文件创建)
  • 点“确定”,ProcMon开始静默记录

此时,你去卸载一个软件(比如刚装的VS Code)。卸载过程中,ProcMon窗口会疯狂滚动,显示成千上万条记录。卸载完成后,点“捕获”按钮暂停。

6.2 卸载后分析:找出“未清理项”

在ProcMon窗口,按Ctrl+L打开日志,点“查找”→输入软件名(如vscode)。结果里,你会看到:

  • 卸载器创建的临时文件(C:\Users\用户名\AppData\Local\Temp\vscode-uninstall.log
  • 卸载器写入的注册表项(HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\{...}
  • 卸载器没删的文件(C:\Users\用户名\AppData\Roaming\Code\下的User文件夹)

重点看Result列为SUCCESSPath指向已删除位置的记录。比如:

Time of Day: 10:23:45.123 Process Name: vssetup.exe Operation: RegSetValue Path: HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{...}\InstallLocation Result: SUCCESS Detail: "C:\Program Files\Microsoft VS Code\"

这说明卸载器把InstallLocation值设为了空字符串,但没删Uninstall\{...}这个键本身。这就是你第四步要处理的“幽灵键”。

6.3 建立个人“卸载检查清单”

把每次ProcMon分析的结果,整理成Markdown表格,存在OneDrive里。例如:

软件名未删文件夹未删注册表键未停服务备注
VS CodeAppData\Roaming\Code\HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{...}CodeSetupBrokerRoaming里存用户设置,如需保留则跳过
Node.jsAppData\Roaming\nvm\HKCU\Software\Node.jsnvm是版本管理器,卸载Node.js后应保留

下次卸载同类软件(如另一款IDE),直接对照清单,5分钟内完成清理。我坚持这个习惯3年,现在重装系统后,C盘三年不清理也能保持60GB以上可用空间。

最后分享一个小技巧:Windows 10/11自带的“存储感知”功能,可以自动清理%TEMP%AppData\Local\Temp。设置路径:设置→系统→存储→存储感知→配置存储感知,勾选“删除我的应用程序使用的临时文件”,并设为“每次登录时”。这相当于给你的C盘装了个自动清洁机器人,配合上述四步,真正做到“卸载即干净”。

我在实际操作中发现,最耗时的不是清理本身,而是确认“该不该删”。所以我的原则永远是:先备份,再验证,后删除。注册表导出、文件夹重命名(如OldApp_DELETE_ME)、Everything搜索留痕——这些动作多花2分钟,能避免3小时的系统修复。技术没有捷径,但经验可以传承。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 15:47:23

从ET1100到AX58100:EtherCAT从站硬件改版实战记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 15:40:57

简述 Word Embedding 可以怎样运用于文本分类任务?

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录 一、🍀回答重点 二、🍀扩展知识 一、🍀回答重点 Word Embedding 可以通过将词汇表示为稠密的向量,从而使文本…

作者头像 李华
网站建设 2026/9/24 15:40:05

AI Agent 面试题 244:Prompt模板的参数化设计和动态渲染机制

&#x1f525; AI Agent 面试题 244&#xff1a;Prompt模板的参数化设计和动态渲染机制摘要&#xff1a;本文深入解析了「Prompt模板的参数化设计和动态渲染机制」这一 AI Agent 领域的核心面试题。文章从 Prompt 模板管理 的基本概念出发&#xff0c;系统性地剖析了 参数化、动…

作者头像 李华
网站建设 2026/9/24 15:35:38

all-in-rag 实战:向量数据库选型与 FAISS 本地向量存储实现指南

all-in-rag 实战&#xff1a;向量数据库选型与 FAISS 本地向量存储实现指南 【免费下载链接】all-in-rag &#x1f50d;大模型应用开发实战一&#xff1a;RAG 技术全栈指南&#xff0c;在线阅读地址&#xff1a;https://datawhalechina.github.io/all-in-rag/ 项目地址: http…

作者头像 李华