你有过这种经历吗:100个项目文件夹需要分别压缩成独立的RAR文件、每个用不同密码、还要放到对应客户名字的子目录里。
鼠标一个一个右键 → 添加到压缩文件 → 输密码 → 选路径 → 等它跑完 → 下一个。做完50个差不多一小时过去了。
WinRAR的命令行模式可以在10秒内完成同样的批量任务——而且一次写成脚本,下次直接双击运行。 本文不讲WinRAR基础安装(这不缺教程),专讲命令行批量操作的实战用法。

前置准备:找到RAR.exe
WinRAR安装后自带两个命令行工具:
RAR.exe— 创建和管理RAR格式压缩包WinRAR.exe—WinRAR.exe同上但界面操作
RAR.exe 默认路径:C:\Program Files\WinRAR\RAR.exe
如果敲 rar 显示"不是内部命令",把它加入系统PATH:
- Win + R → 输入
sysdm.cpl→ 高级 → 环境变量 - 在系统变量Path里添加
C:\Program Files\WinRAR\ - 确定后重新打开命令行窗口
验证:rar 回车看有没有帮助信息出来。
💡 如果WinRAR都还没装,参考WinRAR电脑版免费下载与安装指南。
基础命令速查
压缩
rar a -r -ep1 输出文件名.rar 源文件夹\
参数说明:
a— add,添加文件到压缩包-r— 递归子文件夹-ep1— 不包含完整路径(只存相对路径,不存C:\Users...)
解压
rar x 压缩包.rar 目标目录\
x— extract with full paths(保持压缩包里的目录结构)- 换成
e— extract without paths(所有文件平铺到目标目录)
带密码压缩
rar a -p密码123 -r 加密文件.rar 源文件夹\
分卷压缩(每个分卷100MB)
rar a -v100m 分卷文件.rar 大文件\
输出为 分卷文件.part1.rar、分卷文件.part2.rar ……
分卷压缩的详细用法参考RAR分卷压缩与合并解压教程。
实战案例1:批量压缩100个文件夹,每个独立成RAR
场景:D:\Projects\ 下有100个客户项目文件夹,每个要独立压缩成 客户名.rar。
PowerShell 脚本:
$rar = "C:\Program Files\WinRAR\RAR.exe"
Get-ChildItem -Directory D:\Projects | ForEach-Object {
$out = "D:\Archives\$($_.Name).rar"
& $rar a -r -ep1 "$out" "$($_.FullName)"
Write-Host "Done: $($_.Name)"
}
bat 批处理版:
@echo off
set RAR=C:\Progra~1\WinRAR\RAR.exe
for /d %%d in (D:\Projects\*) do (
%RAR% a -r -ep1 "D:\Archives\%%~nd.rar" "%%d"
echo Done: %%~nd
)
⚠️ 注意:bat中WinRAR的路径如果有空格,用短路径名
C:\Progra~1\WinRAR\RAR.exe或引号包裹。
实战案例2:按日期归档——每日自动备份
场景:每天下午6点自动把 D:\Work\ 压缩成 Work_20260709.rar 放到备份盘。
PowerShell 脚本 + 计划任务:
$rar = "C:\Program Files\WinRAR\RAR.exe"
$date = Get-Date -Format "yyyyMMdd"
$src = "D:\Work"
$dst = "E:\Backup\Work_$date.rar"
# 排除临时文件和node_modules
& $rar a -r -ep1 -x*.tmp -xnode_modules -x.git "$dst" "$src"
# 删除7天前的旧备份
Get-ChildItem E:\Backup\Work_*.rar | Where-Object {
$_.LastWriteTime -lt (Get-Date).AddDays(-7)
} | Remove-Item
设置定时任务:
- Win + R →
taskschd.msc - 创建基本任务 → 名称"每日工作备份"→ 触发器"每天18:00"
- 操作"启动程序"→ 程序
powershell.exe→ 参数-File D:\Scripts\daily-backup.ps1
实战案例3:批量解压后按内容分类
场景:下载了50个压缩包,解压后要按文件类型分类(.docx放一起、.pdf放一起、.jpg放一起)。
$rar = "C:\Program Files\WinRAR\RAR.exe"
$src = "D:\Downloads\*.rar"
$tmp = "D:\Temp\extract"
$doc = "D:\Sorted\Documents"
$pdf = "D:\Sorted\PDFs"
$img = "D:\Sorted\Images"
New-Item -ItemType Directory -Force $tmp, $doc, $pdf, $img
Get-ChildItem $src | ForEach-Object {
& $rar x -o+ "$($_.FullName)" "$tmp\"
}
# 按类型移动
Get-ChildItem $tmp -Recurse -File | ForEach-Object {
switch ($_.Extension.ToLower()) {
{$_ -in ".docx", ".doc", ".txt"} { Move-Item $_.FullName $doc }
".pdf" { Move-Item $_.FullName $pdf }
{$_ -in ".jpg", ".png", ".gif"} { Move-Item $_.FullName $img }
}
}
批量解压的更多技巧参考RAR批量解压提取指南。
实战案例4:分卷加密备份——超100GB的数据安全存储
场景:300GB视频素材需要备份到多个U盘或云盘(单个文件服务上限50GB)。
$rar = "C:\Program Files\WinRAR\RAR.exe"
& $rar a -v50g -p"MyStr0ngP@ss!" -rr10% -hp "D:\Backup\VideoProject" "E:\VideoProjects\*"
参数说明:
-v50g— 分卷50GB-p— 设置密码-rr10%— 添加10%恢复记录(防损坏)-hp— 同时加密文件名(不知道密码连文件名都看不到)
加了恢复记录后才能用WinRAR自带的修复功能,原理和操作参考RAR损坏修复指南和RAR恢复记录原理与使用教程。
命令参数速查表
| 参数 | 含义 | 示例 |
|---|---|---|
a | 添加文件到压缩包 | rar a out.rar src\ |
x | 解压(保持目录结构) | rar x in.rar dest\ |
e | 解压(忽略目录结构) | rar e in.rar dest\ |
-r | 递归子目录 | rar a -r out.rar src\ |
-p[密码] | 加密 | rar a -p123 out.rar src\ |
-hp[密码] | 加密文件名+内容 | rar a -hp123 out.rar src\ |
-v[size] | 分卷大小 | rar a -v100m out.rar bigfile\ |
-ep1 | 去掉基路径 | rar a -ep1 out.rar C:\data\ |
-x[pattern] | 排除特定文件 | rar a -x*.tmp out.rar src\ |
-rr[N]% | 添加恢复记录 | rar a -rr5% out.rar src\ |
-m0到-m5 | 压缩级别 | -m0最快 -m5最小 |
-o+ | 覆盖已有文件 | rar x -o+ in.rar dest\ |
-t | 测试压缩包完整性 | rar t archive.rar |
-ibck | 后台运行 | rar a -ibck out.rar src\ |
为什么要用命令行而不是图形界面?
三个场景下命令行完胜:
- 100个以上的批量任务:GUI一个接一个点几小时,CLI一行命令搞定
- 定时自动化:配合计划任务,无人值守自动备份
- 服务器环境:远程桌面连上去只有命令行的Windows Server,没有桌面环境可操作
日常偶尔压几个文件 → 右键菜单最方便。批量处理 → 命令行最快。
WinRAR一键解压所有和右键菜单修复参考WinRAR右键菜单修复。
常见问题
Q: 命令行压缩的RAR文件和右键菜单"添加到压缩文件"效果一样吗?
完全一样——都用同一个RAR.exe引擎,压缩率、格式完全一致。区别只是操作方式不同。
Q: 批量压缩时电脑CPU占满会不会卡死?
默认不会——WinRAR命令行模式有自己的CPU调度。如果同时做其他事觉得卡,加 -m0 降低压缩级别(只打包不压缩,极快但体积几乎不变小)。或者在任务管理器里把 RAR.exe 进程的优先级调到"低于正常"。或者加 -ibck 让它在后台以最低优先级运行。
Q: 密码可不可以从文件里读取而不是写在命令里?
PowerShell可以直接读取:
$pass = Get-Content D:\secure\password.txt
& $rar a "-p$pass" out.rar src\
但注意密码文件本身需要保护好——放在加密文件夹或BitLocker加密的分区里。
Q: 压缩到一半电脑断电了,生成的半成品RAR能挽救吗?
如果建压缩包时加了 -rr 恢复记录 → 有一定机会能用WinRAR的修复功能恢复。没加恢复记录 → 半成品RAR文件通常是损坏的,需要重压。这也是备份重要文件时建议加 -rr10% 的原因——多出10%的额外体积换一个防损坏保险。
Q: 能不能只把指定扩展名的文件打包,其他忽略?
可以,用两个方法:
方法一(指定包含):rar a out.rar D:\src\*.pdf D:\src\*.docx — 只打包pdf和docx
方法二(排出不想要的):rar a -x*.tmp -x*.log -xnode_modules out.rar D:\src\ — 打包全部但排除tmp/log/node_modules
两种方法可以混用。
Q: 不同RAR压缩级别的体积和速度差多少?
(实测条件:混合文件10GB,包含文档/图片/视频)
| 级别 | 大小 | 耗时 |
|---|---|---|
| -m0(仅存储) | 10GB | 15秒 |
| -m3(默认) | 6.5GB | 3分20秒 |
| -m5(最大压缩) | 6.1GB | 8分45秒 |
结论:-m3是性价比最高的设置。-m5只比-m3小约6%,但时间翻倍多——除非存储极其珍贵、带宽极其宝贵→没必要。
相关推荐:RAR压缩解压 · WinRAR解压工具 · 压缩文件修复