设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3413|回复: 4
打印 上一主题 下一主题

[其它] 【技巧】WinRAR命令行版本 rar.exe 语法及参数使用详解

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-7-29 20:03:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前写过Rar.exe的用法,并做过一个rar解压压缩的通用程序。今天又重新修改了一下,又重新对命令参数复习了一遍。顺便记录一下,以便以后查看。或许对其它网友也有用。[size=14.6999998092651px]另请注意一下,rar.exe 命令行不支持Zip文件的解压,解决办法
[size=14.6999998092651px]1)使用unzip.exe 来解压,方法 与Rar.exe 差不多
[size=14.6999998092651px]2) 使用非命令行的完整版本winrar.exe 参数 与rar.exe 完全 一样

RAR 命令行语法
~~~~~~~~~~~~~~
语法
   RAR.exe <命令>  [ -<开关> ]  <压缩文件>  [ <@列表文件...> ]
       [ <文件...> ]  [ <解压路径\> ]

常用命令
a       添加文件到压缩文件中。
        例子:
        1) 从当前目录添加所有的 *.hlp 文件到 help.rar 压缩文件:
        rar a help *.hlp

2) 如果目录包含文件掩码或以反斜线结尾,将会应用普通的规则,你需要指定 -r 开关来处理它的子目录。
        下列命令会把 Bitmaps 目录中除了子目录外的所有文件添加,因为未
        指定开关 -r:
        rar a Pictures.rar Bitmaps\*

d       从压缩文件中删除文件。请注意,如果这个命令导致压缩文件中所有文件
        全部删除,这个空的压缩文件将被删除。

e       解压文件到当前目录。

f       更新压缩文件中的文件。 更新打包到压缩文件后被改变的文件。这个命令不
        向压缩文件中添加新文件。
u       更新压缩文件中的文件。添加不在压缩文件中的文件和更新打包后改变了的
        文件。
m[f]    移动到压缩文件中[只用于文件]。移动文件和目录会使压缩操作完成后它
        们被删除。如果使用变量'f'和/或应用开关'-ed',则不删除目录。
v[t,b]  详细列出压缩文件内容[技术信息]。文件列出所使用的格式:绝对路径名,文
        件注释,原始和压缩后的大小,压缩率,最近更新日期和时间,属性,CRC,
        压缩方式和解压所需的最小RAR版本。当使用't'变量时可选技术信息(主操作
        系统,固实标志和老的文件版本标记)显示。变量 'b' 强制 RAR 只输出单纯
        的文件名,而没有其他任何的附加信息。
        列出所有压缩卷的内容,使用星号('*')代替压缩文件扩展名或使用'-v'
        开关。
        例子:
        1) 列出 system.rar 压缩文件的内容 (技术信息)并使用重定向符输出
           到文件 techlist.lst 中
           rar vt system >techlist.lst
        2) 列出 tutorial.rar 压缩文件的内容 (单纯文件名模式)
           rar vb tutorial
x       带绝对路径解压
        例子:
        rar x test.rar testDir\
        注意,目录名后面要跟\符号,如果没有testDir这个文件夹,会先自动创建。
如果文件已存在,若要解压后覆盖文件,则使用-o+开关,或者用-y开关。若不覆盖则用-o-开关。


常用开关

-ag[格式]
        使用当前的日期和时间生成压缩文件名。
        当创建压缩文件时附加当前日期字符串到压缩文件名上。用于每日备份。
        附加的字符串格式有几种可选的格式参数定义或使用"YYYYMMDDHHMMSS"。
        字符串的格式可以包含下列字符:
        Y   - 年
        M   - 月
        MMM - 使用文本字符串作为月名(Jan,Feb,等.)
        W   - 年的第几周 (每星期从星期一开始)
        A   - 星期几 (星期一 -1,星期日 - 7)
        D   - 月的第几天
        E   - 年的第几天
        H   - 小时
        M   - 分 (如果在小时后,被作为分钟对待)
        S   - 秒
        N   - 压缩文件数。RAR 搜索要生成的名字的文件是否存在,如果发现
              它已经存在,将递增一个压缩文件数字,直到生成一个唯一的名字。
              'N' 格式化字符在创建卷时不被支持。
        上面列出的每个字符串仅表示添加到压缩文件名中的一个字符。例如,
        使用  WW 表示 2 数字的星期或 YYYY 定义 4 数字的年。
        如果在格式化字符串的第一个字符是'+',日期字符串和基本压缩文件名
        位置交换,所以日期将在压缩文件名之前。
        格式化字符串可以包含在 '{' 和 '}' 包含的可选字符。此文本插入到压
        缩文件名中。
        所有其它字符被不变地添加到文件名上。
        如果你需要更新已经存在的压缩文件,小心使用 -ag 开关。依赖于以前
        使用的 -ag 传送的格式化字符串和时间,生成的和现有的压缩文件名可
        能不匹配。在这种情况下 RAR 会创建一个新的压缩文件,而不是更新现
        有文件。

        例子:
        1) 使用默认 YYYYMMDDHHMMSS 格式
           rar a -ag backup
        2) 使用 DD-MMM-YY 格式
           rar a -agDD-MMM-YY backup
        3) 使用 YYYYMMDDHHMM 格式,替换'backup'之前的日期
           rar a -ag+YYYYMMDDHHMM backup
        4) 使用 YYYY-WW-A 格式,包含区段描述
           rar a -agYYYY{year}-WW{week}-A{wday} backup
        5) 使用 YYYYMMDD 和压缩文件数。它允许你在同一天使用 -agyymmdd-nn
           数次,每一个新的压缩文件名都将包含一个新的递增数字。
           rar a -agYYYYMMDD-NN backup
注意:以上命令会生成文件名为backup{日期字符串}.rar的压缩包,backup也可以是别的自定义名字。
若想文件名中只保留日期,只需不写backup只写.rar即可:
rar.exe a –agYYYY-MM-dd  .rar




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2015-7-29 20:03:24 | 只看该作者

-ed     不添加空目录

        这个开关指出空目录不被存储到被创建的压缩文件中。当解压这样一个压
        缩文件时, RAR 会基于他们内部的文件路径创建非空的目录。关于空目录
        的信息丢失。非空目录除了名字外(访问权限, 流, 等。)其他所有属性全
        部丢失, 所以只有在你不需要保留这样的信息时使用此开关。

        如果 -ed 和 'm' 命令或 -df 开关一起被使用,RAR 将不能移除空的目录。



-hp[p]  加密文件数据和头。

        这个开关和 -p[p] 类似,但是开关 -p 只加密文件数据,而使文件名等
        其它信息可见。这个开关加密所有包括文件数据、文件名、大小、属性、
        注释和其它块等所有可感知压缩文件区域,所以它提供了更高的安全等
        级。在压缩文件中使用-hp 加密,没有密码甚至不可能查看文件列表。

        例子:

        rar a -hpfGzq5yKw secret report.txt

        将添加文件 report.txt 到加密的压缩文件secret.rar中,使用密码
        'fGzq5yKw'



-m<n>   设置压缩模式:

   -m0   存储      添加到压缩文件时不压缩文件。
   -m1   最快      使用最快方式(低压缩)
   -m2   较快      使用快速压缩方式
   -m3   标准      使用标准(默认)压缩方式
   -m4   较好      使用较好压缩方式(较好压缩,但是慢)
   -m5   最好      使用最大压缩方式(最好的压缩,但是最慢)

        如果没有指定这个开关,RAR使用-m3方式(标准压缩)。

        默认情况下,RAR 在 -m1 和 -m2 模式中只使用常规压缩算法,高级算法
        像声音和真彩处理只有在 -m3..-m5 模式下才启用,提升的文本压缩只有
        在 -m4..-m5 中才被激活。默认值可以使用 -mc 开关替代。



-ms[列表]
        指定存储文件类型。

        指定不压缩而直接存贮的文件类型。这个开关被用来存储已经压缩的文件,
        这将帮助增加压缩速度,而不会显著的减小压缩率。

        可选参数 <列表> 参数定义使用分号隔开的文件扩展名列表。例如,
        -msrar;zip;jpg 将强制RAR不压缩直接存储所有的RAR和ZIP压缩文件和
        JPG 图像。它也允许在列表中指定通配符文件掩码,所以 -ms*.rar;
        *.zip;*.jpg 也可以工作。

        如果 <列表> 没有被指定,-ms 开关将使用默认的包含下列文件类型的扩
        展设置:

        7z, ace, arj, bz2, cab, gz, jpeg, jpg, lha, lzh, mp3,
        rar, taz, tgz, z, zip



-mt<线程>
            设置线程数。仅可用于 Window 版本。

            <线程> 参数可以是从 0 到 16 的值。它定义对于压缩算法活动线程的
            推荐数。如果它大于 0,RAR 会使用多线程版本的压缩算法,在多处理
            器系统上提供更高的速度。真实的活动线程数可能和指定的不同。

            如果 <线程> 是 0,RAR 会使用单线程压缩算法。

            改变 <线程> 参数轻微影响压缩率,所以如果所有其它压缩参数相等而
            使用不同的 -mt 开关创建的压缩文件不会解压得一样连贯。

            如果没有指定 -mt 开关,RAR 会尝试检测可用的处理器的数量并自动
            选择优化的线程数。



-or     如果相同名字的文件已经存在则自动重命名解压的文件。重命名文件将得
        到象 'filename(N).txt' 的名字,'filename.txt' 的位置是原始的文件
        名,如果文件存在 'N' 是从 1 增加数字。

-o[+|-] 设置覆盖模式。可以在解压或更新文件时使用。下列模式可用:

          -o           覆盖前询问
                       (默认用于解压文件);

          -o+          覆盖所有
                       (默认用于更新的压缩文件);

          -o-          跳过已存在的文件。                    

-o+     覆盖已存在的文件。
-o-     不覆盖已存在的文件。


-p[p]   压缩时,使用字符串<p>作为密码加密文件。密码大小写敏感。如果你在
        命令行忽略密码,你会看到一个输入密码的提示。

        例子:

        rar a -pmyhoney secret1 *.txt

        添加 *.txt文件并用密码"myhoney"加密.

-r      包含子文件夹,可以使用命令:
        a,u,f,m,x,e,t,p,v,l,c,cf 和 s.

        当使用命令 'a','u','f','m' 将处理在所有子目录中以及当前工作目
        录的中的文件。

        当使用命令 x,e,t,p,v,l,c,cf 或 s 将处理在子目录以及当前工
        作目录中所有压缩文件。


-r-     禁用递归。

        在某些情况下,即使没有指定 -r 开关 RAR 也会自动启用递归。开关 -r-
        禁止它。

        压缩时如果你指定了目录名,目录名不包含通配符,即使 -r 开关没有指定,
        默认 RAR 添加目录的内容。如果磁盘根目录没有把通配符作为文件掩码指定,
        RAR 也会自动启用递归。开关 -r- 禁用此行为。
        
        例子:
        
        rar a -r- arc dirname
        
        命令仅会添加空目录 'dirname' 目录并忽略它的内容。下列命令:
        
        rar a -r- arc c:\
        
        会仅压缩 c: 根目录的内容并不会包含子目录。

-ta<日期>
        只处理指定日期之后修改的文件。

        日期字符串的格式是 YYYYMMDDHHMMSS。它允许在日期字符串中插入'-'
        或 ':'的分隔符,并忽略后部区域。例如,下列开关是正确的:
        -ta2001-11-20在内部它被转换成 -ta20011120000000 并作为"从2001
        年11月20日0时0分0秒后修改的区域"对待。



-tb<日期>
        只处理指定日期之前修改的文件。开关的格式和 -ta<日期> 相同。

-tn<时间>
        处理指定时间以后的新文件。时间字符串格式时:

        [<ndays>d][<nhours>h][<nminutes>m][<nseconds>s]

        例如,使用开关 -tn15d 来处理更新了15天的文件,-tn2h30m 来处理更
        新了2小时30分的文件。


-to<时间>
        处理指定时间以前的旧文件。开关的格式和 -tn<时间> 相同。



-x<f>   排除指定的文件 <f>,通配符可以用在名称和文件掩码的文件部分。你
        可以数次指定开关'-x'。

        如果掩码包含通配符,它应用到当前目录和它的子目录。没有通配符它不
        递归,所以如果你要在所有文件夹中排除某些“文件名”,你需要指定两
        个掩码:用于当前目录的“文件名”和用于子目录的“*\filename”。如果
        你知道一个文件的确切路径,你可以是使用“路径\文件名”语法来仅排除
        “文件名”的此副本。如果你在解压一个压缩文件时使用 -x路径\文件名
        语法,“路径”必须是一个压缩文件内的路径,而不是在解压后的磁盘上
        的文件路径。

        例子:

        1) rar a -r -x*.bak -x*.rar rawfiles

        *.bak 和 *.rar 不会添加到 rawfiles 中

        2) rar a -r -x*\temp -x*\temp\* savec c:\*

        压缩 C: 上除了 Temp 文件夹中的临时目录和文件外的所有文件

        3) rar x -x*.txt docs

        从 docs.rar 解压除了 *.txt 外的所有文件

-y      对于所有询问全部回答是。



-?      显示命令和开关的帮助。和没有参数或输入非法命令行选项时相同。


--      停止开关扫描

        这个开关告诉 RAR 命令行中没有更多的开关了。如果压缩文件或文件名
        以 - 符号开头,可以使用它。没有'--'开关,这样的名字将被作为开关
        对待。






返回值
~~~~~~

   RAR 成功操作后返回 0 。非 0 返回码意味着操作由于某种错误被取消:

    255   用户中断         用户中断操作

      9   创建错误         创建文件错误

      8   内存错误         没有足够的内存进行操作

      7   用户错误         命令行选项错误

      6   打开错误         打开文件错误

      5   写错误           写入磁盘错误

      4   被锁定压缩文件   试图修改先前使用 'k' 命令锁定的压缩文件

      3   CRC 错误         解压缩时发生一个 CRC 错误

      2   致命错误         发生一个致命错误

      1   警告             没有发生致命错误

      0   成功             操作成功

点击这里给我发消息

3#
发表于 2015-7-29 20:19:04 | 只看该作者
{:soso_e127:}太高深了,我是新手  看不懂{:soso_e113:}
4#
发表于 2015-7-30 10:30:51 | 只看该作者
太强,以前学cuxun很多实例,都很精彩。谢谢分享!
5#
发表于 2016-8-3 19:11:01 | 只看该作者
厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 08:36 , Processed in 0.084561 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表