找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 128|回复: 3

[建议] 新版是否能新增一项 Preferences 等核心配置,主动防灾备份功能?

[复制链接]
匿名  发表于 3 天前 |阅读模式

https:// www. centbrowser. net/zh-cn/forum.php?mod=redirect&goto=findpost&ptid=21750&pid=116682
Admin
强制结束进程,还是有小概率会导致配置文件损坏的,建议你使用账号同步多一重保险

----

在新版的设置里,新增一项是否允许开启核心配置文件本地主动防灾备份功能,每隔 xx 小时备份一次,最多保留 xx 项,备份列表,如何?xx 与备份列表是用户可选或填空项,当开启后,百分将按照设定好的值,自动运行指定批处理(backup.cmd?)或内置文件操作命令,对 User Data \ Default 等多个账户文件夹内的 Preferences 等(可自定义)核心文件,进行备份。万一用户电脑因为蓝屏等意外情况,导致 chrome 崩溃带来的 Preferences 等核心配置文件损坏,问题发生后,用户还能在 ini Backup 文件夹里,找回最近有效的备份进行手动恢复

核心配置文件,本地主动防灾备份功能,这个在所有的第三方浏览器里都很极其罕见,我觉得这个做好了后,能变成百分遇到风险情况时的保底优势,别家出问题就全部凉凉,百分出问题,我们用户还有后备手段(需提前或默认开启)兜底

----

我找了免费尝鲜野龙虾,让他自己思考,为我生成明确的 skill 并自行按照 skill 要求,制作一份示例代码,所需备份文件列表可以在 bat 里手动设置。生成的代码可能有错误,我没有实际运行过,只是提供一个老大开发参考思路
  1. 【批处理文件需求:CentBackup.bat】
  2. 适用场景:Windows第三方Chromium便携浏览器根目录(含chrome.exe、User Data文件夹)
  3. 核心功能:自动备份浏览器用户数据指定文件,自动清理旧备份

  4. 一、固定配置项
  5. 1. backupfiles=50:ini Backup文件夹最多保留50份时间戳备份,超出则递归删除最旧的
  6. 2. backupDefaults=1:1=备份User Data下所有Default/Default1/Default2...;0=仅备份Default
  7. 3. 备份文件列表:Preferences、History、Login Data

  8. 二、执行流程(严格顺序)
  9. 1. 校验脚本必须在chrome.exe同级目录运行,否则报错退出
  10. 2. 校验User Data目录存在,不存在则退出返回错误码1
  11. 3. 获取当前系统时间,格式化为:2026-03-28 14-48-54
  12. 4. 在根目录创建 ini Backup 文件夹(如已存在则跳过创建步骤),子目录为时间戳文件夹
  13. 5. 根据backupDefaults配置,枚举所有需要备份的Default文件夹
  14. 6. 将指定文件复制到对应时间戳目录,保留原目录结构
  15. 7. 自动清理超出数量的旧备份,仅保留最新N份
  16. 8. 复制成功:静默退出;复制失败:显示报错信息,按任意键后退出

  17. 三、输出目录结构示例
  18. 根目录
  19. ├─ ini Backup
  20. │  ├─ 2026-03-28 14-48-54
  21. │  │  ├─ Default
  22. │  │  │  ├─ Preferences
  23. │  │  │  ├─ History
  24. │  │  │  └─ Login Data
  25. │  │  └─ Default2(按需生成)
  26. │  └─ 2026-03-28 15-48-54
  27. ├─ chrome.exe
  28. └─ User Data

  29. 四、使用说明
  30. 将 CentBackup.bat 放在便携浏览器根目录(和 chrome.exe 同级)
  31. 双击运行,自动完成备份
  32. 备份文件保存在 ini Backup 文件夹,自动保留最新 50 份
  33. 复制失败会弹窗提示,成功则静默退出
复制代码
  1. @echo off
  2. chcp 65001 >nul
  3. setlocal enabledelayedexpansion

  4. :: ===================== 核心配置项(可自行修改) =====================
  5. set "backupfiles=50"          :: 最大保留备份份数,超出自动删除最旧的
  6. set "backupDefaults=1"        :: 1=备份所有Default/Default1/Default2... 0=仅备份Default
  7. :: 备份文件列表(无后缀,每行一个)
  8. set "backupList=Preferences History Login Data"
  9. :: ====================================================================

  10. :: ===================== 路径初始化与根目录校验 =====================
  11. set "ExePath=%~dp0chrome.exe"
  12. set "RootDir=%~dp0"
  13. set "UserDataDir=%~dp0User Data"
  14. set "BackupRoot=%RootDir%ini Backup"

  15. :: 校验:必须在chrome.exe同级目录运行
  16. if not exist "%ExePath%" (
  17.     echo 错误:脚本未放置在 chrome.exe 同级根目录!
  18.     pause >nul
  19.     exit /b 1
  20. )

  21. :: 校验:用户数据目录不存在,退出并返回错误码1
  22. if not exist "%UserDataDir%" (
  23.     exit /b 1
  24. )

  25. :: ===================== 生成当前时间戳(格式:2026-03-28 14-48-54) =====================
  26. for /f "tokens=2 delims==" %%a in ('wmic os get LocalDateTime /value') do set "dt=%%a"
  27. set "timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2% %dt:~8,2%-%dt:~10,2%-%dt:~12,2%"
  28. set "CurrentBackupDir=%BackupRoot%\%timeStamp%"

  29. :: ===================== 创建备份目录 =====================
  30. if not exist "%BackupRoot%" mkdir "%BackupRoot%"
  31. mkdir "%CurrentBackupDir%"

  32. :: ===================== 枚举需要备份的 Default 文件夹 =====================
  33. set "defaultFolders="
  34. if %backupDefaults% equ 1 (
  35.     :: 备份所有 Default 开头的文件夹
  36.     for /d %%d in ("%UserDataDir%\Default*") do (
  37.         set "defaultFolders=!defaultFolders! %%~nxd"
  38.     )
  39. ) else (
  40.     :: 仅备份默认 Default 文件夹
  41.     set "defaultFolders=Default"
  42. )

  43. :: ===================== 执行文件复制备份 =====================
  44. set "copyError=0"
  45. for %%f in (%defaultFolders%) do (
  46.     set "srcDir=%UserDataDir%\%%f"
  47.     set "destDir=%CurrentBackupDir%\%%f"
  48.     if exist "!srcDir!" (
  49.         mkdir "!destDir!" 2>nul
  50.         :: 循环复制备份列表中的文件
  51.         for %%i in (%backupList%) do (
  52.             if exist "!srcDir!\%%i" (
  53.                 copy "!srcDir!\%%i" "!destDir!\%%i" /y >nul 2>&1
  54.                 if errorlevel 1 set "copyError=1"
  55.             )
  56.         )
  57.     )
  58. )

  59. :: ===================== 清理旧备份(保留最新 N 份) =====================
  60. for /f "skip=%backupfiles% delims=" %%d in ('dir "%BackupRoot%" /ad /b /o-n') do (
  61.     rd /s /q "%BackupRoot%\%%d" 2>nul
  62. )

  63. :: ===================== 复制结果校验 =====================
  64. if %copyError% equ 1 (
  65.     echo ==============================================
  66.     echo 备份失败!部分文件复制出错,请检查权限/目录
  67.     echo ==============================================
  68.     pause
  69.     exit /b 1
  70. )

  71. :: 备份成功,静默退出
  72. endlocal
  73. exit /b 0
复制代码
回复

使用道具

12

主题

9993

回帖

2万

积分

超级版主

(^^ゞ

积分
27125
发表于 3 天前 | 显示全部楼层
我觉得有点意思,能多个本地备份用户数据的便捷途径。但似乎会有个现实的问题,在浏览器运行过程中,有部分数据文件是被程序锁着而不让读取的。
¯\(°_o)/¯
回复

使用道具 举报

0

主题

8

回帖

42

积分

新手上路

积分
42
发表于 昨天 09:57 | 显示全部楼层
我觉得这个可以有。但这个批处理还是要手动去执行。需要一个能定期定时执行的操作。放系统的计划任务里应该也可以。
回复

使用道具 举报

29

主题

1757

回帖

9749

积分

论坛元老

积分
9749
发表于 昨天 10:48 | 显示全部楼层
每月备份系统盘表示无压力,回滚个两周一个月的不影响,环境配好了基本不动,只有历史记录的变化,不是太重要
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|百分浏览器论坛

GMT+8, 2026-3-31 13:54 , Processed in 0.041422 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表