浏览器

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
94
95
96
97
98
99
@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"

tar -a -c -f "%ZIP_FILE%" -C "%BACKUP_ROOT%" "Firefox_Profile_Latest"

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包。
    )

    REM 6.只保留最新一个ZIP,删除所有旧备份
    echo [操作] 正在清理旧备份,只保留最新一个...
    PowerShell -Command "Get-ChildItem '%BACKUP_ROOT%\*-Firefox-*.zip' | Sort-Object LastWriteTime -Descending | Select-Object -Skip 1 | Remove-Item -Force"
    echo [信息] 旧备份已清理。

) else (
    echo [错误] ZIP压缩包创建失败。
)

echo.
echo [信息] 所有操作完成。
pause
  1. 检查 Firefox 是否运行,可选:等待关闭 / 强制结束 / 取消备份。
  2. 创建备份根目录,设置镜像备份文件夹 Firefox_Profile_Latest。
  3. 使用 robocopy /MIR 镜像同步配置文件夹,排除缓存、崩溃报告、遥测数据等临时文件。
  4. 将镜像文件夹压缩为带时间戳的 ZIP 包(格式 YYYYMMDD-Firefox-HHMMSS)。
  5. 按设置决定是否删除镜像文件夹,仅保留 ZIP 包。
  6. 清理旧备份,只保留最新一个 ZIP。
  7. 输出结果,等待用户确认。

完全关闭 Firefox 后,右键脚本点击 以管理员身份运行 即可开始备份。

恢复备份

打开 Firefox,进入 about:support,点击 打开文件夹 定位配置目录,然后关闭 Firefox,删除配置目录内的所有内容,解压备份 ZIP 压缩包,将内容复制到配置目录中。

完成后,重启 Firefox,书签、历史记录、扩展、设置、界面布局等将完整恢复。

留言交流