返回列表 发帖

[文件操作] WinRAR 7.0 压缩解压缩软件的命令行版本rar.exe及详细帮助文档

WinRAR是大家都非常熟悉的压缩解压软件,基本上是装机必备了,我就不多说什么了。

版本:7.0
大小:3.8M

简体中文个人免费版官方下载地址:
https://www.winrar.com.cn/download.htm


【应用实例】

01. 已经存在的压缩包 a.rar 原本没密码,需要给它设置 BatHome 作为密码:
rar.exe ch -hpBatHome "a.rar"COPY
调用命令行工具 WinRAR.exe 可以把文件压缩成zip格式 (rar.exe没有这个功能)
WinRAR.exe a  -ibck test.zip test.txtCOPY
批处理分别调用7-Zip和WinRAR把文件批量分组压缩成zip格式
http://bbs.bathome.net/thread-34846-1-1.html

批处理调用WinRAR压缩最近7天时间内的文件
http://bbs.bathome.net/viewthread.php?tid=20788#pid122360

批处理调用WinRAR制作自解压文件
http://bbs.bathome.net/viewthread.php?tid=6966#pid45345

批处理调用WinRAR把同名文件压缩成自解压文件
http://bbs.bathome.net/thread-4532-1-1.html

批处理给压缩文件添加注释
http://bbs.bathome.net/thread-12001-1-1.html

批处理批量修改RAR压缩包注释中的指定字符
http://bbs.bathome.net/thread-7628-1-1.html

批处理批量给WINRAR自解压文件添加注释
http://bbs.bathome.net/thread-4605-1-1.html

批处理解压缩顶级目录下的指定文件
http://bbs.bathome.net/thread-26829-1-1.html

批处理调用WinRAR分卷压缩和解压缩
http://bbs.bathome.net/thread-64138-1-1.html#pid260555

<命令>
  a             添加文件到压缩文件
  c             添加压缩文件注释
  ch            更改压缩文件参数
  cw            将压缩文件注释写入文件
  d             从压缩文件里删除文件
  e             提取文件无需压缩文件的路径
  f             更新压缩文件里的文件
  i[par]=<str>  查找压缩文件里的字符串
  k             锁定压缩文件
  l[t[a],b]     列出压缩文件内容 [technical[all], bare]
  m[f]          移动到压缩文件 [仅文件]
  p             打印文件到 stdout
  r             修复压缩文件
  rc            重建丢失的分卷
  rn            重命名压缩的文件
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复分卷
  s[name|-]     转换压缩文件为自解压或自解压转换为压缩文件
  t             测试压缩文件
  u             更新压缩文件中的文件
  v[t[a],b]     详尽地列出压缩文件内容 [technical[all],bare]
  x             以完整路径提取文件COPY
<参数>
  -             停止参数扫描
  @[+]          禁用 [启用] 文件列表
  ac            压缩或解压后清除存档属性
  ad            添加压缩文件名到目标路径
  ag[格式]      使用当前日期生成压缩文件名
  ai            忽略文件属性
  ao            添加具有压缩属性的文件
  ap<格式>      添加路径到压缩文件中
  as            同步压缩文件内容
  c-            禁用注释显示
  cfg-          禁用读取配置
  cl            转换名称为小写
  cu            转换名称为大写
  df            压缩文件后删除原来的文件
  dh            打开共享的文件
  dr            删除文件到回收站
  ds            对固实压缩文件禁用名称排序
  dw            压缩文件后清除文件
  e[+]<attr>    设置文件排除和包含属性
  ed            不要添加空目录
  en            不要放置 '压缩文件结束' 区块
  ep            从名称里排除路径
  ep1           从名称里排除基目录
  ep2           扩展路径到完整路径
  ep3           扩展路径为完整路径包括驱动器盘符
  f             更新文件
  hp[password]  加密文件数据和文件头
  ht[b|c]       为文件校验和选择哈希类型 [BLAKE2,CRC32]
  id[c,d,p,q]   禁用消息
  ieml[addr]    通过电邮发送压缩文件
  ierr          发送所有消息到 stderr
  ilog[name]    记录错误到文件(仅注册的版本)
  inul          禁用所有消息
  ioff          完成操作后关闭电脑
  isnd          启用声音
  k             锁定压缩文件
  kb            保留损坏的已解压缩文件
  log[f][=name] 将名称写入日志文件
  m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
  ma[4|5]       指定压缩格式的一个版本
  mc<par>       设置高级压缩参数
  md<n>[k,m,g]  字典大小显示为 KB, MB 或 GB
  ms[ext;ext]   指定要存储的文件类型
  mt<threads>   设置线程数
  n<file>       额外的包含过滤器的文件
  n@            从 stdin 读取额外的过滤器掩码
  n@<list>      从列表文件读取额外的过滤器掩码
  o[+|-]        设置覆盖模式
  oc            设置 NTFS 压缩属性
  oh            将硬链接保存为链接而非文件
  oi[0-4][:min] 将完全相同的文件保存为引用
  ol            将符号链接保存为链接而非文件
  or            自动重命名文件
  os            保存 NTFS 流
  ow            保存或恢复文件所有者和组
  p[password]   设置密码
  p-            不要查询密码
  qo[-|+]       添加快速打开信息 [无|强制]
  r             递归子目录
  r-            禁用递归
  r0            仅为通配符名称递归子目录
  ri<P>[:<S>]   设置优先级 (0-默认,1-最小..15-最大) 和睡眠时间为 ms
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复分卷
  s[<N>,v[-],e] 创建固实压缩文件
  s-            禁用固实压缩文件
  sc<chr>[obj]  指定字符集
  sfx[name]     创建自解压文档
  si[name]      从标准输入 (stdin) 读取数据
  sl<size>      处理小于指定大小的文件
  sm<size>      处理大于指定大小的文件
  t             压缩文件后测试文件
  ta<date>      处理在 <日期> 之后修改过的文件,以 YYYYMMDDHHMMSS 格式
  tb<date>      处理在 <日期> 之前修改过的文件,以 YYYYMMDDHHMMSS 格式
  tk            保存原来的压缩文件时间
  tl            设置压缩文件时间为最新的文件
  tn<time>      处理比 <时间> 较新的文件
  to<time>      处理比 <时间> 较旧的文件
  ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问)
  u             更新文件
  v<size>[k,b]  创建分卷大小为=<size>*1000 [*1024, *1]
  vd            创建分卷之前清除磁盘内容
  ver[n]        文件版本控制
  vn            使用旧式的分卷命名方案
  vp            创建每个分卷之前暂停
  w<path>       指定工作目录
  x<file>       排除指定的文件
  x@            读取文件名以从 stdin 排除
  x@<list>      排除指定列表文件里列出的文件
  y             对所有询问假定选择“是”
  z[file]       从文件读取压缩文件注释COPY
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

quote code 便
技术问题请到论坛发帖求助!

TOP

使用rar.exe的一些体会和例子

a       添加文件到压缩文件中。
--------------------------------
        直接列出所有要添加的文件或文件夹
                可以使用通配符
                带完整路径的文件或文件夹添加进去后的路径为除去原磁盘盘符以外的部分,如 "D:\txt\novel01.txt" 添加为 "txt\novel01.txt"
                如果文件夹路径后面不带斜杠则添加整个文件夹,带斜杠则只添加此文件夹(不包括它的子文件夹)路径下的文件(不包括文件夹)
        rar a "new.rar" "rar.exe" "*.txt" "C:\Program Files\Common Files"
----------------
        按照一个保存文件路径的文本文档中列出的信息添:
        rar a "new.rar" @"list.txt"
================================================================
d        从压缩文件中删除文件。用法类似 a 命令。
                如果这个命令导致压缩文件中所有文件全部删除,这个空的压缩文件将被删除。
--------------------------------
        直接列出所有要删除的文件或文件夹
                可以使用通配符
                与 a 命令不同的是,不论文件夹路径后面带不带斜杠都讲删除整个文件夹
        rar d "new.rar" "rar.exe" "*.txt" "Program Files\Common Files"
----------------
        按照一个保存文件路径的文本文档中列出的信息添:
        rar d "new.rar" @"list.txt"
================================================================
c       添加压缩文件注释。
                文件的注释长度限制到 32767 字节。
--------------------------------
        直接从键盘输入注释
                回车表示已经输入完毕
        rar c "new.rar"
----------------
        从已有的文本文件中载入注释
        rar c "new.rar" -z"info.txt"
================================================================
cf        为压缩包内文件添加注释信息。
                注意 c 命令是为压缩包添加注释,此命令是为其内部包含的文件添加注释;
                此注释在UI界面不会显示,可以通过 v 命令查看。
--------------------------------
        为压缩包内所有文件添加或更新注释
        rar cf "new.rar"
----------------
        指定要添加注释的文件(可以使用通配符)
        rar cf "new.rar" "*.txt" "file02.exe"
================================================================
v        查看压缩包及其内部文件的信息。
                可以查看到由 c 命令所创建的注释。
--------------------------------
        查看所有文件的信息
        rar v "new.rar"
----------------
        指定要查看信息的文件(可以使用通配符)
        rar v "new.rar" "*.txt" "file02.exe"
::::::::::::::::::::::::::::::::
l[t,b]        压缩文件的内容列表[技术信息]。
                和 'v' 命令一样列出文件,但不包括文件路径,也就是只显示文件名。
                当使用't'变量时可选技术信息(主操作系统,固实标志和老版本标记)被显示。
                变量 'b' 强制 RAR 只输出单纯的文件名,而没有其他任何的附加信息。
        rar lb masses.rar
        rar lt mySFX.exe
================================================================
i[i|c|h|t]=<字符串>        在压缩文件中查找字符串。
                                这里指的是压缩包中文件的内容中寻找。
        支持下列可选参数:
                i - 不区分大小写(默认);
                c - 区分大小写搜索;
                h - 十六进制搜索;
                t - 使用 ANSI, Unicode 和 OEM 字符表 (只有 Win32 可用);
        如果没有指定任何参数,它可以使用简化的命令行语法 i<字符串> 来代替 i=<字符串>
        它允许指定带有另外一个参数的 't' 变量,例如,ict=字符串 在上面提及的所有表中执行区分大小写的搜索。
                一般带上开关 -r ,表示也包括子目录下的内容。
--------------------------------
        在 c:\*.rar 压缩文件中的 *.txt 文件执行区分大小写的 "first level" 字符串的搜索
        rar "ic=first level" -r c:\*.rar *.txt
----------------
        在 e:\text 目录下的 rar 压缩文件中搜索十六进制字符串 f0 e0 ae ae ab 2d 83 e3 a9
        rar ih=f0e0aeaeab2d83e3a9 -r e:\text
================================================================
k        锁定压缩文件。任何试图改变压缩文件的命令都会被忽略。
                对于自解压程序同样有效。
--------------------------------
            rar k *.rar mySFX.exe
================================================================
rn        重命名压缩文件。
                RAR 不检查目标文件名是否已经在压缩文件中存在,所以你需要小心,防止重名。尤其是使用通配符时特别重要。这个命令有潜在的危险,因为一个错误的通配符可以损坏所有的压缩文件名。
        语法:
        rar rn <压缩文件名> <源文件名1> <目标文件名1> ... <源文件名N> <目标文件名N>
--------------------------------
        在压缩文件 data.rar 中将把 readme.txt 重命名为 readme.bak 并把 info.txt 重命名为 info.bak
        rar rn data.rar readme.txt readme.bak info.txt info.bak
----------------
        在源文件和目标文件名中可以使用通配符来进行简单像改变文件扩展名的名称转换,例如将把所有的 *.txt 文件重命名为 *.bak
        rar rn data.rar *.txt *.bak
================================================================
其他一些参数我认为不是太使用就没写出来了,有兴趣的自己去差资料看。
应用实例
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.        用 x 命令和 -ad 开关将 D:\RarFiles 目录中所有的RAR压缩文件分别解压到 E:\MyFiles\new 下(若此路径不存在则会自动创建)
                rar x -ad "D:\RarFiles\*.rar" "E:\MyFiles\new\"
2.        将 D:\Work 目录及其子目录中所有隐藏(h)的经典毛毛全部压缩到 E:\Study 取名为 JAVA ,可能一个文件太大了,就分成30兆一卷吧,为了保护内容,我给压缩文件内容和文件头都加上密码 ohYes ,这样就保密啦
                这里用 -e-s 开关排除系统属性的文件,当然如果你要的已经设为系统属性就去掉此项
                rar a -r -e+h -e-s -p"ohYes" -hp -v30m "E:\Study\JAVA" "D:\Work\*.rmvb" "D:\Work\*.mpeg" "D:\Work\*.mpg"
3.        把工作空间 D:\Projects 的琐碎资料压缩成固实包并锁定作为备份,但不要备份它下面临时文件夹 Temp 和临时备份文件夹 Backup 下面的内容以及所有的 .bak 和 D:\exclude.txt 中列出的文件,完成后关机(关机功能仅WIN32系统)
                rar a -r -s -ed -k -ioff -x"D:\Projects\Temp\*" -x"D:\Projects\Backup\*" -x"D:\Projects\*.bak" -x@"D:\exclude.txt" "D:\Project.rar" "D:\Projects"
4.        建立了一个非常大的零碎文件的压缩包 D:\masses.rar ,里面光是文本文件就有几千个,名字也是乱搞的,某天忽然想找一首湿,只记得有一句是“纯爷们 铁血真汉子”,但是不知道是在这个压缩包中的哪个文件中了,要解压出来找也很麻烦啊
        使用 i 命令可以在这个包中找特定字符串,包括十六进制的
                rar i="纯爷们 铁血真汉子" -r "D:\masses.rar"
        从命令行窗口信息看到
                发现  D:\masses.rar / masses\super\史记.txt
                  春哥纯爷们 铁血真汉子
        于是知道是在 masses\super\史记.txt 里面。COPY
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=47984
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

rar备份重装文件

WinRAR帮助文件:

压缩时如果使用此开关则保存和恢复包括盘符的完全的文件路径。磁盘分隔符 (冒号)被下划线字符替换。

如果你解压时使用 -ep3 ,它把下划线改回为冒号并且把文件解压到它们原始的目录和磁盘中。如果用户也指定了目标路径,它会被忽略。

此开关对于把数个磁盘备份到同一个压缩文件有帮助。例如,你可以运行 :

WinRAR a -ep3 -r backup.rar c:\ d:\ e:\

来创建备份并且:

WinRAR x -ep3 backup.rar

来恢复它。

小心使用 -ep3 开关,只有你确认压缩文件不包含任何恶意文件。你可以在 -ep3 开关 的描述中看到更多关于“存储包含盘符的完全路径”模式的可能的好处和危险,它是与此 WinRAR 选项等价的命令行。换句话说,如果是你自己创建的压缩文件或你完全相信它的作者才使用它。此开关允许覆盖在你的计算机上任何地方的任何文件,包括重要的系统文件和通常仅用于备份和恢复的目的。


参考:
重装前运行:
@echo off
color 0b
rar.exe a -u -as -ep3 -r -isnd -ibck f:\backup.rar @"f:\备份文件.lst"
cls
echo:
echo: 备份完成!!!
start "" /max f:\backup.rar
ping 127.0.0.1 -n 2 >NULCOPY
重装后运行:
@echo off
color 0b
rar.exe x -ep3 -ibck -y "f:\backup.rar"
echo:
echo: 完成恢复!!!
ping 127.0.0.1 -n 2 >NULCOPY
f:\备份文件.lst
C:\WINDOWS\Rar.exe
C:\WINDOWS\rarreg.key
%userprofile%\SendTo
%userprofile%\「开始」菜单\程序\启动\
%userprofile%\Application Data\WinRAR\
%userprofile%\Application Data\Tencent\COPY


说明:
1.我是将C:\Program Files\WinRAR文件夹中的rarreg.key和Rar.exe复制到C:\WINDOWS调用的,若你没有这一步,请在rar.exe前加上路径。
2.%userprofile%文件夹是我们重装前备份的重点。

[ 本帖最后由 Wingl83 于 2009-7-16 15:28 编辑 ]
我是小菜菜……

TOP

d        从压缩文件中删除文件。用法类似 a 命令。
                如果这个命令导致压缩文件中所有文件全部删除,这个空的压缩文件将被删除。
--------------------------------
        直接列出所有要删除的文件或文件夹
                可以使用通配符
                与 a 命令不同的是,不论文件夹路径后面带不带斜杠都讲删除整个文件夹

bak.rar文件内有1.txt和“sd”文件夹
下面的代码将删除整个bak.rar文件
rar d "bak.rar" "sd\"COPY
下面的代码只删除“sd”文件夹
rar d "bak.rar" "sd"COPY

[ 本帖最后由 zjw767676 于 2009-12-15 20:41 编辑 ]
有一种爱叫放弃

TOP

找了半天这里最详细了,正是需要的.

TOP

返回列表