WinRAR文档压缩适合整理Word、Excel、PDF、PPT、合同扫描件、...
很多Windows用户一直认为WinRAR只能点点鼠标。实际上,它内置了一套功能完整的命令行工具——rar.exe和unrar.exe。利用命令行,你可以将压缩备份集成到计划任务、批处理文件或PowerShell脚本中,实现无人值守的自动备份、增量备份以及远程传输前预处理。

准备命令行环境:找到并配置rar.exe
第一次使用命令行的用户,需要先确认文件存在并添加系统路径。
安装WinRAR时确保勾选“添加到PATH”
WinRAR安装过程中有一个选项“将WinRAR添加到系统路径(Add to PATH)”,默认可能未勾选。如果没有勾选,则命令行中输入rar会提示不是内部命令。解决办法:重新运行安装程序,选择“修改”,勾选该选项。或者手动添加路径:安装目录(通常为C:\Program Files\WinRAR)下的rar.exe,将其所在目录添加到环境变量PATH中。
验证命令行可用性
打开命令提示符(CMD)或PowerShell,输入rar。如果显示版本信息和参数列表,说明配置成功。如果提示“未找到”,请先切换到WinRAR安装目录测试:cd “C:\Program Files\WinRAR”,再输入rar。成功后可以考虑永久添加PATH。
rar.exe与unrar.exe的区别
rar.exe支持压缩和解压(完整功能),unrar.exe仅支持解压。最小化场景可以只带unrar.exe。备份脚本中通常使用rar a(添加)命令执行压缩。
核心命令与参数详解:你只需要记住这几个
五个最常用的命令,覆盖90%的自动化需求。
a:将文件添加到压缩包
基本格式:rar a 目标文件名.rar 要压缩的文件或文件夹。例如:rar a backup.rar C:\MyData。常用附加参数:-r(递归包含子文件夹,不加则只压缩顶层);-ep1(从名称中排除基路径,避免压缩包内出现完整路径);-m5(最大压缩,0为存储,5为最大);-s(固实压缩)。
x 或 e:解压文件
rar x archive.rar:解压并按原始路径还原文件夹结构。rar e archive.rar:将所有文件解压到同一层目录(忽略路径)。日常备份解压多用x。
t:测试压缩包完整性
rar t archive.rar。可用于备份后自动测试,确保没有写入错误。
u:更新压缩包(增量备份)
rar u backup.rar C:\MyData:只将比压缩包内更新的文件添加进去(不删除已删除的文件)。适合每日增量备份。若要同步删除源端已删除的文件,请使用rar u -up。
d:从压缩包中删除文件
rar d archive.rar file.txt:从已有压缩包中移除指定文件。
实战案例一:每天晚上自动备份指定文件夹

下面写一个完整的批处理脚本,并利用Windows计划任务执行。
编写backup.bat脚本
用记事本创建一个新文件,保存以下内容:
text
@echo offset BACKUP_SOURCE=D:\MyDocumentsset BACKUP_DEST=E:\Backupset DATE=%date:~0,4%%date:~5,2%%date:~8,2%rar a -r -m5 -ep1 -agYYYYMMDD %BACKUP_DEST%\backup_%DATE%.rar %BACKUP_SOURCE%if %errorlevel% equ 0 (echo 备份成功) else (echo 备份出错)
解释:-agYYYYMMDD自动在压缩包名称后添加当前日期。每次运行生成一个新的时间戳文件,避免覆盖。
设置Windows计划任务
打开“任务计划程序”(taskschd.msc),创建基本任务→触发器设为每天“晚上10点”→操作→启动程序→程序填写C:\Windows\System32\cmd.exe,参数添加/c “E:\Scripts\backup.bat”(路径改为你存放bat的位置)。勾选“使用最高权限运行”。
测试脚本并查看日志
手动双击bat运行一次,检查E:\Backup下是否生成了新的rar文件。双击压缩包确认内容正确。可以在脚本中添加>> backup.log记录输出。
实战案例二:增量备份并自动删除30天前的旧备份
进阶脚本,包含清理逻辑。
text
@echo offset SOURCE=D:\Projectsset DEST=E:\Backup\Projectsset DAYSTOKEEP=30forfiles /p “%DEST%” /m “*.rar” /d -%DAYSTOKEEP% /c “cmd /c del @path”rar u -r -ep1 -ag -cfg- -inul “%DEST%\project_backup.rar” “%SOURCE%”
说明:forfiles删除30天前的rar;-cfg-忽略配置文件;-inul禁止错误消息弹窗。注意:rar u更新时,只会增加新文件或更新已修改的文件,不会删除源端已经不存在的文件。若需要同步删除,改用rar u -up。
实战案例三:远程备份前压缩并分卷(配合FTP上传)
WinRAR命令行支持分卷参数,可直接生成适合上传的分卷包。
分卷压缩加恢复记录
rar a -v100m -rr3% archive.rar C:\LargeFolder。-v100m表示每卷100MB,-rr3%添加3%恢复记录。生成archive.part1.rar等文件后,可以用FTP命令行或robocopy上传。
压缩后自动调用上传脚本
在bat中接着写:
text
rar a -v100m -rr3% temp_backup.rar D:\Dataif exist temp_backup.part1.rar ( ftp -s:upload_script.txt)
upload_script.txt内容为FTP命令(open 服务器, user, put等)。或者使用curl配合云存储API。
常见错误处理与调试技巧

命令行操作难免遇到权限或路径问题,以下经验可供参考。
错误提示“Cannot create folder”
原因:目标路径不存在或没有写权限。在脚本中使用mkdir创建输出目录。
压缩包内路径过深导致文件名过长
WinRAR命令行默认支持长路径,但Windows Explorer解压时可能截断。使用-ep1去除根路径,或-ep2展开完整路径。
计划任务运行失败但没有报错
检查任务计划程序的“起始于”文件夹。最好在命令中写全绝对路径,包括rar.exe的完整路径:“C:\Program Files\WinRAR\rar.exe”而不只是rar。
测试压缩包完整性并记录
在备份脚本中添加rar t backup.rar,如果测试失败则发送邮件提醒(可通过Blat或邮件命令行工具)。
WinRAR命令行和图形界面压缩出的文件质量有没有差别?
我的WinRAR脚本中使用了-ag自动添加日期,为什么生成的压缩包文件名乱码?
WinRAR如何让命令行压缩时排除某些子文件夹(如临时目录)?