导读:本期聚焦于美谷创作的《如何用 WinRAR 命令行编写自动备份脚本?常用参数详解与实战示例》,敬请观看详情。WinRAR 除了图形界面之外,还提供了一个功能完整的命令行工具 Rar.exe,配合批处理脚本可以实现定时自动压缩备份。本文详细讲解 WinRAR 命令行常用参数的含义,包括压缩、分卷、加密、排除文件、增量备份等核心用法,并结合真实场景给出完整的 bat 备份脚本示例,例如每天按日期自动生成压缩包、清理过期备份、只打包修改过的文件等。同时分析了任务计划程序调用脚本时的常见坑,比如路径带空格导致失败、密码转义问题以及退出码判断,帮助你快速搭建一套稳定可靠的 Windows 文件备份方案,避免手工压缩的繁琐和遗漏。

手工压缩备份文件既费时又容易遗漏,其实 WinRAR 自带的命令行工具 Rar.exe 完全可以胜任自动化备份工作。只要写好一个批处理脚本,再交给 Windows 任务计划程序定时执行,就能实现每天自动打包、自动清理过期备份,全程无需人工干预。本文从命令行基础讲起,逐步给出可直接套用的完整脚本。

如何用 WinRAR 命令行编写自动备份脚本?常用参数详解与实战示例

一、认识 WinRAR 的命令行工具

安装 WinRAR 后,在安装目录(通常是 C:\Program Files\WinRAR)下可以找到两个重要的可执行文件:Rar.exe 和 UnRAR.exe。Rar.exe 负责压缩,UnRAR.exe 负责解压。很多人以为 WinRAR 只能通过图形界面操作,实际上命令行版本的功能非常完整,甚至支持一些图形界面没有暴露的高级参数。

使用命令行前,建议先把 WinRAR 安装目录加入系统 PATH 环境变量,这样在任何位置打开命令提示符都可以直接输入 rar 命令。如果不加 PATH,就需要在脚本里写完整路径,注意路径带空格时必须用英文双引号包起来,例如:

"C:\Program Files\WinRAR\Rar.exe" a -ep1 "D:\Backup\work.rar" "D:\Work\*"

执行后返回 0 表示成功,非 0 表示出错。常见的退出码有:0 成功、1 警告(非致命错误)、3 CRC 错误、5 磁盘已满或写失败、10 没有匹配文件。脚本里可以用 errorlevel 判断执行结果并记录日志。

二、备份场景常用参数详解

命令行的基本结构是:rar <命令> <参数1 参数2 ...> 压缩包名 源文件。压缩用 a 命令(add 的缩写),后面跟的开关参数决定了备份的行为。下面列出做备份时最常用的几个参数:

  • -r:递归处理子目录,备份整个目录树时必加。
  • -ep1:从内部路径中排除基本目录,避免压缩包里出现完整路径层级,让文件直接从源目录名开始。
  • -ag:自动生成压缩文件名,常配合日期格式使用,例如 -agYYYYMMDD 会生成类似 work20240515.rar 的文件名。
  • -m5:压缩方式,-m0 只存储不压缩,-m5 压缩率最高但速度最慢。文档类备份建议 -m5,图片视频等已压缩文件用 -m0 更快。
  • -p:设置压缩包密码,注意 -p 和密码之间不能有空格。
  • -x:排除指定文件,例如 -x*.tmp -x*.log 排除临时文件和日志。
  • -v:分卷压缩,例如 -v100m 表示每卷 100MB,适合超大目录。
  • -hp:同时加密文件数据和文件头,不解密连文件列表都看不到,安全性比单纯 -p 更高。

举个综合例子,把 D:\Work 目录打包成带日期的压缩包,排除临时文件并加密码:

"C:\Program Files\WinRAR\Rar.exe" a -r -m5 -agYYYYMMDD -ep1 -x*.tmp -hpMyPass123 "D:\Backup\work" "D:\Work"

这条命令会生成 D:\Backup\work20240515.rar,包含 D:\Work 下所有子目录,排除了 tmp 文件,并使用密码 MyPass123 加密了文件头。注意 -hp 后面直接跟密码,中间不能有空格,密码中如果包含特殊字符建议放在脚本开头定义为变量。

三、完整备份脚本实战

单个命令只能压缩一次,真正的备份脚本还需要处理日期命名、日志记录、过期清理。下面是一个可以直接使用的完整 bat 脚本:

@echo off
rem 设置变量
set RAR="C:\Program Files\WinRAR\Rar.exe"
set SRC=D:\Work
set DST=D:\Backup
set LOG=D:\Backup\backup.log
set KEEP=15

rem 按日期生成压缩包
%RAR% a -r -m5 -agYYYYMMDD-HHMM -ep1 -x*.tmp "%DST%\work" "%SRC%" >> "%LOG%" 2>&1

rem 判断结果
if %errorlevel%==0 (
    echo %date% %time% 备份成功 >> "%LOG%"
) else (
    echo %date% %time% 备份失败 退出码 %errorlevel% >> "%LOG%"
)

rem 删除15天前的旧备份
forfiles /p "%DST%" /m work2*.rar /d -%KEEP% /c "cmd /c del @path" >> "%LOG%" 2>&1

脚本的核心思路:先用 -ag 参数让压缩包自动带上日期时间,避免覆盖;然后把输出重定向到日志文件,方便排查;最后用 forfiles 删除 15 天前的旧备份,控制磁盘占用。forfiles 是 Windows 自带命令,在 Server 2003 以上系统都可用,比手工写 for 循环判断日期简单得多。

把脚本保存为 backup.bat,然后在任务计划程序里新建任务,触发器设为每天凌晨 2 点,操作里选择启动程序并指向该脚本。这里有个常见坑:如果任务设置了“不管用户是否登录都运行”,务必把“起始于”字段填上脚本所在目录,否则脚本内的相对路径会找不到文件,报错却不留下明显日志。

四、增量备份与常见问题

全量备份简单但浪费空间,WinRAR 支持基于归档位的增量备份,只打包自上次备份后修改过的文件,关键参数是 -ao-ac。典型做法是:

rem 第一次做全量备份
%RAR% a -r -ac -agYYYYMMDD-FULL "%DST%\work" "%SRC%"

rem 后续每天做增量,只打包设置了归档位的文件并清除该标志
%RAR% a -r -ao -ac -agYYYYMMDD-INC "%DST%\work" "%SRC%"

-ac 表示压缩后清除文件的归档位,-ao 表示只处理设置了归档位的文件。两者配合就能实现:文件一旦被修改,系统会重新设置归档位,下次增量备份时会自动被包含进来。这种方案适合文件总量大但每天变动少的情况,恢复时先解全量包再按顺序解增量包即可。

最后提醒几个容易踩坑的地方。第一,路径包含空格时必须整体加双引号,变量赋值时等号两边不要有空格。第二,用 -p 或 -hp 设置密码时,如果密码中有百分号或引号,需要额外转义,建议密码只用字母数字。第三,压缩超大文件时加 -v 分卷参数可以防止单个文件超过磁盘或网盘的单文件限制。第四,如果备份目标是网络共享路径,先在脚本里用 net use 命令建立映射,比直接写 UNC 路径更稳定。掌握这些细节后,一套可靠的 Windows 自动备份方案就搭建完成了。

WinRAR命令行RAR备份脚本自动备份修改时间:2026-09-12 05:42:30

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260912/55138.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。