加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Cabarc.exe 压缩、列出压缩包中的文件、解压CAB文件详解

(2015-09-18 13:03:13)
标签:

蓝凤凰-魔灵

浴火凤凰-郭卫

cabarc.exe

压缩

解压缩

分类: VB程序设计

http://s2/mw690/001lYZC9ty6VwWx2zRLd1&690压缩、列出压缩包中的文件、解压CAB文件详解" TITLE="Cabarc.exe 压缩、列出压缩包中的文件、解压CAB文件详解" />

下载地址:http://pan.baidu.com/share/home?uk=3188066380&view=share#category/type=0

        Cabarc.exe是一个用于压缩、列出压缩包中的文件、解压CAB文件的工具。Cabarc使用一个类似于常用的压缩工具的命令行界面。Cabarc支持通配符和递归路径搜索。

1、 Cabarc 的使用方法如下:

http://s14/mw690/001lYZC9ty6VwEmeUKVad&690压缩、列出压缩包中的文件、解压CAB文件详解" TITLE="Cabarc.exe 压缩、列出压缩包中的文件、解压CAB文件详解" />

2、当前支持三种命令:

.n ——建立一个新的.cab文件。

.l ——列出一个存在的.cab文件的内容

.x ——从一个.cab压缩包中解压出文件 建立一个新的CAB文件

3、( n 命令)CAB压缩包通过使用 n 命令来建立,后面接着是要生成的压缩包的文件名、再后面是要压缩的文件名列表。示例如下:

cabarc n mycab.cab prog.c prog.h prog.exe readme.txt

这个命令建立CAB压缩包文件 mycab.cab ,其中包含在一个文件夹中的 prog.c、 prog.h、 prog.exe、 readme.txt 文件,它使用默认的压缩模式:MSZIP。

CABARC支持在文件名列表中使用通配符,比如下面的例子:

cabarc n mycab.cab prog.* readme.txt

4、选项(-p, -P, -r, -s, -i, -m, -l, +, @)

4.1 路径保存(-p)默认的情况下,CAB压缩文件中是不保存路径名称的,只保存文件名称的成分

例如,下面的命令把 Prog.c 文件储存到压缩包中:

cabarc n mycab.cab c:\source\myproj\prog.c

为了保存路径,象下面例子中的那样使用 -p 选项:

cabarc -p n mycab.cab c:\mysource\myproj\prog.c

这个命令把 mysource\myproj\prog.c 放到CAB压缩包中。注意"C:\"还是会从文件名中被去掉。CABARC既不能在压缩包中保存绝对路径,又不能将绝对路径从压缩包中解压出来。

4.2 路径剥离(-P) 路径剥离选项-P用来保存一个路径的一部分(不是全部)。下面的例子显示这个选项怎样储存在 c:\mysource\myproj\ 目录下的所有东西,但是只储存路径的 myproj\ 部分:

cabarc -p -P mysource\ n mycab.cab c:\mysource\myproj\prog.c

这个选项剥离以提供的字符串开头的任何字符串。-P选项不支持通配符,它是一个简单的文本匹配。绝对路径前缀——例如

C:\ 或者 \——将在比较发生前被剥离,所以不要在使用-P选项的时候包含绝对路径前缀。

-P选项可以被重复使用来剥离多个路径,CABARC建立一个所有将被剥离的目录的列表并且只应用在第一个匹配的上面。

参考下面的例子:

cabarc -p -P mysrc\ -P yoursrc\ n mycab.cab c:\mysrc\myproj\*.* d:\yoursrc\yourproj\*.c 在路径尾部的斜杠是重要的。用 -P mysrc 代替 -P mysrc\ 将用 \myproj\文件名的形式添加文件。

4.3 递归路径搜索(-r) CABARC有一个-r选项,用于递归路径搜索。使用这个选项来归档在一个目录和它所有的子目录中的文件。例如,下面的命令归档在 c:\msdev\include\、 c:\msdev\include\sys、和 c:\msdev\include\gl 下所有的以 .h 结尾的文件(假定在你的系统中存在着这些目录):

cabarc -r -p n mycab.cab c:\msdev\include\*.h

在这里使用的-p选项用来在文件被添加到压缩包中时保存路径信息。没有这个选项将只保存文件名。

4.4 为数字签名保留空间(-s)

CABARC可以在压缩包中为编码签名保留空间。这是通过-s选项来做到的,它将在压缩包中保留指定大小的空的位置。对编码签名来说,一般是 6144 byte。注意下面的例子: cabarc -s 6144 n mycab.cab test.exe

这个-s选项并不真正写入编码签名,它只是在压缩包中保留位置。使用编码签名工具来填入编码签名。

设置压缩包ID(-i) CAB压缩包文件有一个专为应用程序使用的16位压缩包识别字段。这个字段的默认值为0(zero)。无论如何,使用CABARC的-i选项设置这个字段的值为任何16位值,比如下面的例子:

cabarc -i 12345 n mycab.cab test.exe

4.5 设置压缩类型(-m) 使用-m选项设置压缩类型。默认的CAB压缩包的压缩类型是MSZIP。只支持MSZIP压缩格式(-m MSZIP)和不压缩格式(-m NONE)。下面的例子不压缩储存文件到CAB压缩包中:

cabarc -m NONE n mycab.c *.*

4.6 从一个文件中建立一个文件列表(-l)

CABARC可以从一个文件中建立文件列表。CABARC可以根据从一个文本文件中导入的内容编译生成一个文件列表(代替命令行的方式),使用-l选项,后面跟随一个从中导入文件名列表的文件名。参考下面的例子:

cabarc -l filelist.txt n mycab.cab

这个-l选项能够被重复使用来操作多个文件获得文件名列表。CABARC不检查重复的文件。如果同一个实质上的文件出现在多个文件名列表中,它将会被加到压缩包中多次。在命令行方式下,带文件名的-l选项和普通的方式可以组合使用。从-l选项中来的文件名将首先被添加。参考下面的例子:

cabarc -l filelist1.txt -l filelist2.txt n mycab.cab *.c *.h

4.7 开始新的文件夹(+)默认的情况下所有的文件都被放到压缩包中的一个文件夹中。指定CABARC通过使用加号新建一个文件夹以放入文件是允许的,象下面的例子显示的那样:

cabarc n mycab.cab test.c main.c + test.exe *.obj

这个命令建立CAB压缩包文件 mycab.cab,它有两个文件夹,一个包含 test.c 和 main.c;第二个文件包含 test.exe 和所有符合 *.obj 条件的文件。

4.8 从一个已经存在的文件列表中生成一个文件清单(@)

通过使用@files代替命令行方式,CABARC可以从一个文本文件获得它的。这是通过在包含文件列表的文件名前加上@前缀来做到的。例如:

cabarc n mycab.cab @filelist.txt

这个文本文件必须每行列出将被添加的文件的物理文件名。象在命令行方式下一样,加号可以象文件名一样的使用以指定一个新的文件夹的开始。如果一个文件名中包含空格,那么必须在它的两端加上引号。例如:

test.c myapp.exe "output file.exe" 需要一个引号的原因是:在每一行中的物理文件名后面可以选择跟随一个逻辑文件名,真正储存到CAB压缩包中的是以逻辑文件名为文件名的物理文件。

test.c myapp.c myapp.exe "output file.exe" example.exe 如果逻辑文件名中包含空格,它也必须被引号扩起来。注意逻辑文件名会忽略-p(保存目录名)和-P(剥离目录名)选项——文件将完全根据需要被添加到压缩包中去。在物理文件名中允许通配符,但在逻辑文件名的情况下则不行。这个@功能可以使用多次从多个文件获得文件列表。CABARC不检查是否存在重复的文件,所以如果在多个文件列表中有同一个物理文件,这个文件将多次被添加到CAB压缩包中去。这个@功能可以和文件名的形式同时在命令行中使用。添加的文件根据它们在命令行中的次序排序。例如: cabarc n mycab.cab @filelist1.txt *.c @filelist2.txt *.h 这个@功能只在建立压缩包时可用,不能用在列出内容和解压中。列出一个存在的文件的内容列出压缩包内容命令l,使得预览压缩包的内容成为可能。参考下面的例子: cabarc l mycab.cab CABARC显示在压缩包中的Set ID(查看建立压缩包的-s选项)。CABRAC还将显示后面文件的信息:文件大小、日期、时间和属性。

5、从CAB压缩包文件中解压出文件

解压文件命令x,从一个CAB压缩包中解压出文件来。x命令最简单的用法见下面的例子,它将解压压缩包中所有的文件:

cabarc x mycab.cab

可使用的另一种方式是,可以通过一列文件名或者一列文件名和通配符可以自己选择解压哪些文件。参考下面的例子:

cabarc x mycab.cab readme.txt *.exe *.c 默认的情况下,完整的目录结构(如果压缩包中提供的话)在解压时是不保留的。例如,如果 mysrc\myproj\test.c 在压缩包中,cabarc x mycab.cab 命令将会导致 Test.c 被解压在当前目录下。在解压的时候保留文件名,必须使用-p选项。如果需要的话,这个选项将导致建立需要的目录。

默认的情况下,被解压的文件保存在当前目录下(如果使用了-p,那么还有子目录)。无论如何,还是有办法指定一个放置解压文件的目录的。这是通过给命令行添加一个路径名来发生的。这个路径名必须以反斜杠来结尾。例如:

cabarc x mycab.cab c:\somedir\ cabarc x mycab.cab *.exe c:\somedir\

在相应的进程中的解压选项只包含文件名部分,路径名被忽略。例如

cabarc x mycab.cab test.c 导致 mysrc\myproj\test.c 文件被解压到当前目录下的test.c,还有 cabarc x mycab.cab *.c (它将解压所有其他符合 *.c条件的文件)。

作者:http://s15/mw690/001lYZC9zy6V4yZaRMG5e&690压缩、列出压缩包中的文件、解压CAB文件详解" TITLE="Cabarc.exe 压缩、列出压缩包中的文件、解压CAB文件详解" />

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有