浏览器

Firefox 配置一键备份与恢复

警告
本文最后更新于 2026-02-11,文中内容可能已过时。

重装系统或更换电脑时,Firefox 迁移的关键是保留书签、扩展、配置等个性化环境,仅依赖官方同步或手动复制配置目录容易出现遗漏,而通过脚本化备份更为可控和可重复。

下面介绍一个脚本,在 Firefox 关闭后对配置目录统一整理与备份,自动排除缓存等无关数据,生成带时间点的归档文件,实现可恢复、可回滚的完整备份。

创建脚本

创建以下文件(记得修改用户配置,保存为 UTF-8 BOM):

Batchfile一键备份Firefox.bat
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
@echo off
chcp 65001 >nul
title Firefox 配置一键智能备份与压缩
color 0A

REM ========== 【用户配置区域】请根据实际情况修改 ==========
REM 设置Firefox配置文件夹路径(在Firefox地址栏输入 about:support,点击“打开文件夹”获取)
set "PROFILE_PATH=C:\Users\Aria\AppData\Roaming\Mozilla\Firefox\Profiles\XXX"
REM 设置备份文件存放的根目录(请确保此盘符存在)
set "BACKUP_ROOT=E:\备份"
REM 设置是否在压缩后删除原始备份文件夹(Y=删除只留ZIP,N=保留文件夹和ZIP)
set "DELETE_AFTER_ZIP=Y"
REM ========== 配置结束,以下部分无需修改 ==========

echo.
echo [信息] 开始检查 Firefox 运行状态...

:CHECK_LOOP
tasklist | findstr /i "firefox.exe" >nul
if %ERRORLEVEL% EQU 0 (
    echo [警告] 检测到 Firefox 正在运行!
    echo.
    choice /c YNC /n /t 30 /d N /m "请选择:([Y]等待后重试,[N]强制关闭,[C]取消备份): "
    if errorlevel 3 (
        echo [信息] 备份操作已取消。
        pause
        exit /b
    )
    if errorlevel 2 (
        echo [操作] 正在强制结束 Firefox 进程...
        taskkill /f /im firefox.exe >nul
        goto START_BACKUP
    )
    if errorlevel 1 (
        echo [等待] 请关闭 Firefox 窗口,程序将在30秒后自动检测...
        timeout /t 30 /nobreak >nul
        goto CHECK_LOOP
    )
)

:START_BACKUP
echo [信息] Firefox 已关闭,开始执行备份流程...

REM 1. 确保备份根目录存在
if not exist "%BACKUP_ROOT%" (
    echo [操作] 创建备份根目录:%BACKUP_ROOT%
    mkdir "%BACKUP_ROOT%"
)

REM 2. 设置固定的镜像备份文件夹路径
set "BACKUP_FOLDER=%BACKUP_ROOT%\Firefox_Profile_Latest"
echo [信息] 备份目标文件夹:%BACKUP_FOLDER%

REM 3. 使用 robocopy 进行镜像同步,并排除临时文件
echo [操作] 开始镜像同步文件...
robocopy "%PROFILE_PATH%" "%BACKUP_FOLDER%" /MIR /R:3 /W:5 /NP /NDL /NFL ^
/XD "Cache" "cache2" "thumbnails" "Crash Reports" "minidumps" "pending" "datareporting" "saved-telemetry-pings" "shader-cache" "startupCache" "MozillaSafeBrowsing" ^
/XF "sessionstore.jsonlz4"

if %ERRORLEVEL% LSS 8 (
    echo [成功] 文件镜像同步完成。
) else (
    echo [错误] 文件同步过程中可能出现问题。
    pause
    exit /b
)

REM 4. 打包为ZIP (使用自定义格式: YYYYMMDD-Firefox-HHMMSS)
echo [操作] 正在将备份文件夹压缩为ZIP...
for /f "usebackq delims=" %%i in (`PowerShell -Command "Get-Date -Format 'yyyyMMdd_HHmmss'"`) do set "TIMESTAMP=%%i"
set "ZIP_FILE=%BACKUP_ROOT%\%TIMESTAMP:~0,8%-Firefox-%TIMESTAMP:~9,6%.zip"

PowerShell -Command "& { Compress-Archive -Path """%BACKUP_FOLDER%""" -DestinationPath """%ZIP_FILE%""" -Force }"

REM 等待文件系统刷新
timeout /t 1 /nobreak >nul

if exist "%ZIP_FILE%" (
    echo [成功] ZIP压缩包已生成:%ZIP_FILE%
    
    REM 5. 根据设置决定是否删除原始备份文件夹
    if /i "%DELETE_AFTER_ZIP%"=="Y" (
        echo [操作] 正在删除原始备份文件夹以节省空间...
        rmdir /s /q "%BACKUP_FOLDER%"
        echo [信息] 原始文件夹已删除,仅保留ZIP包。
    )
) else (
    echo [错误] ZIP压缩包创建失败。
)

echo.
echo [信息] 所有操作完成。
pause

脚本运行逻辑说明

  1. 检查 Firefox 是否运行(可选等待关闭 / 强制结束 / 取消备份)。
  2. 建备份根目录及镜像文件夹 Firefox_Profile_Latest
  3. 使用 robocopy /MIR 同步配置文件夹(仅复制变化部分)。
  4. 自动跳过临时文件(缓存、崩溃报告、遥测数据等)。
  5. 将镜像文件夹压缩为带时间戳的 ZIP 包(历史归档)。
  6. 按设置决定是否删除镜像文件夹。
  7. 输出结果,等待用户确认。

可调整说明

  • 保留上次未关闭标签页:删除 /XF 后的 "sessionstore.jsonlz4"
  • 缩小备份体积:添加 /XF "*.xpi"(恢复后需重下扩展)。
  • 修改时间戳格式:改 PowerShell 中的 'yyyyMMdd_HHmmss'(如 'yyyy-MM-dd_HHmm')。

运行脚本

右键点击 以管理员身份运行,确保权限完整。

恢复备份

启动 Firefox 后完全退出,打开 about:support,点击 打开文件夹 定位配置目录,删除内部所有内容,解压备份 ZIP 文件复制进去。重启 Firefox 后,书签、扩展、设置、界面布局等完整恢复。

留言交流