网上有的帖子很不负责任,让你删除C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyond Compare 4下面所有文件,
这样是能解决问题,但太过粗暴。BCSessions.xml里面有你添加的过滤器。BCCommands.xml里面有工具栏上的按钮。删了的话,又得重新添加一遍。
正解是删除相应文件中的关键内容即可,写了个批处理,大家拿到之后改一下路径就可以使用:
reg delete "HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4" /v CacheID /f
@echo off
setlocal enabledelayedexpansion
set "xmlFilePathBCState=C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyond Compare 4\BCState.xml"
rem 删除 BCState.xml 中 TCheckForUpdatesState 节点下的 CheckID 和 LastChecked 子节点
powershell -Command ^
"$xmlContent = Get-Content '%xmlFilePathBCState%';" ^
"$xmlContent = $xmlContent -replace '(<CheckID Value="".*?""/>\r?\n)', '';" ^
"$xmlContent = $xmlContent -replace '(<LastChecked Value="".*?""/>\r?\n)', '';" ^
"$xmlContent | Set-Content '%xmlFilePathBCState%'"
rem 删除 BCSessions.xml 中指定节点的属性
set "xmlFilePathBCSessions=C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyond Compare 4\BCSessions.xml"
powershell -Command "& { [xml]$xml = Get-Content '%xmlFilePathBCSessions%'; $xml.BCSessions.RemoveAttribute('Flags'); $xml.Save('%xmlFilePathBCSessions%') }"
endlocal