如何在 Windows 上卸载 WinMerge
WinMerge 除了自己的程序目录,只在用户配置里存了一个小的设置键,没什么需要特意备份的。这份指南覆盖用 WinMerge.WinMerge winget 包按机器安装的 WinMerge。
先退出 WinMerge
关掉打开的比对窗口,卸载前在任务管理器(Ctrl+Shift+Esc)里确认没有 WinMergeU.exe 还在。
用自带的卸载器移除应用
打开「设置 › 应用 › 已安装的应用」,找到 WinMerge,选择卸载,或者运行:
winget uninstall --id WinMerge.WinMerge
WinMerge 自带的卸载器是静默运行的,不会弹窗。
数据分别在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
HKCU\SOFTWARE\Thingamahoochie\WinMerge |
比对设置、过滤器和窗口布局 | 这次测试卸载器自己删了;如果你机器上还留着,可以删 |
检查结果
卸载完成后运行下面几条只读命令:
Get-Process WinMergeU -ErrorAction SilentlyContinue
winget list --id WinMerge.WinMerge
Test-Path "$env:ProgramFiles\WinMerge"
Get-ItemProperty HKCU:\SOFTWARE\Thingamahoochie\WinMerge -ErrorAction SilentlyContinue
Get-Process没有输出只表示未观察到匹配进程,被忽略的查询错误不能当作已经退出。winget list正常完成且没有匹配,才说明包记录已经没了;列出一行,说明卸载没完成。Test-Path "$env:ProgramFiles\WinMerge"返回False,说明程序目录已经没了;返回True,说明那里还有文件。Get-ItemProperty返回设置值表示该项仍在,没有输出时还要确认查询没有权限或其他错误,不能只凭空输出判断已删除。
用 winget 安装时
winget uninstall 运行的是「设置 › 应用」用的同一个 Inno Setup 卸载器(unins000.exe /SILENT),删的是同一批程序文件和设置键。
Mole 会列出什么
对按机器安装的 winget 版 WinMerge:
- 程序目录和公共开始菜单文件夹默认勾选。
HKCU\SOFTWARE\Thingamahoochie\WinMerge会列出,默认不勾选;这次测试里卸载器在 Mole 的审查跑之前已经把它删掉了。
这次检查覆盖了什么
测试的是 arm64 Inno Setup 版 WinMerge 2.16.58.2,按机器安装,提权环境。卸载审查列出的每一行在 Mole 检查时就已经不在了,卸载完成后又核对了一次,还是不在;测试过程中没有配置过比对过滤器或插件。
