VBA 命令行调用rar.exe压缩以及unrar.exe解压缩

2017-09-15 08:15:00
codeweblog
转贴
303


系统自带CMD本身不支持rar的,可以自己找一台安装了winrar的电脑,从文件夹里面提取出来。有些人喜欢丢到windows目录下,其实就是方便调用而已。

RAR.exe 负责的功能是压缩文件 
UnRAR.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-开关。

再来说说unrar。它负责的是解压已经被压缩文件了的文件
假设,D:\abc文件夹下有个a.rar文件 
你要把a文件解压到当前目录 
你就在命令行里输入命令,unrar x(注释,命令x为使用绝对路径)D:\abc\a.rar(注释,这是你要解压的文件的绝对路径) D:\(注释,这个是你想解压的路径,如果留空则默认解压到%HOMEPATH%目录)

unrar.exe x d:\abc\a.rar

执行后就会解压到当前执行命令的目录里面。当然了,我们也可以指定解压的目录。

unrar.exe x d:\abc\a.rar D:\

执行后就把:\abc\a.rar解压到d:\根目录下了

如果你不想用绝对路径解压,在cmd中跳转到,rar文件的目录下,改用命令e,
继续以D:\abc文件夹下有个a.rar文件为例,你到了abc的目录下输入,unrar e a.rar(注释,这里用相对路径)D:\(注释这里依然是你想解压到得目录,但留空则解压到当前目录)

其次,rar文件有密码,则加上开关-p[]
例unrar e -p[abc] a.rar d:\

分享