7zip命令行中文说明

7z.exe 是 7-Zip 的命令行版本。7z.exe 使用 7-Zip 的其它模块,7za.exe 是7-Zip 的独立版本,7za.exe 仅支持 7z、zip、gzip、bzip2 和 tar 格式,7za.exe 使用时不会调用其它模块。

命令行选项

7z[命令行][[选项]...][基本档案名称][[参数变量]...]

7z[command][[switch]...][base_archive_name][[arguments]...]

[参数变量]::=[选项]|[通配符]|[文件名]|[文件列表]

[选项]::=[选项标记][选项字符][[选项]]

[选项标记]::='/'|'-'

[文件列表]::=@{文件名}

[arguments]::=[switch]|[wildcard]|[filename]|[list_file]

[switch]::=[switch_symbol][switch_characters][[option]]

[switch_symbol]::='/'|'-'

[list_file]::=@{filename}

在方括号内的表达式(“[”和“]”之间的字符)是可选的。

在书名号内的表达式(“[” 和 “]”之间的字符)是必须替换的表达式(而且要去掉括号)。

表达式

expression1|expression2|...|expressionN

命令行及选项使用大写或小写字母都可以。

首个命令行必须是无选项的参数变量。

选项及其它文件名的输入顺序可以打乱。

带有空格的通配符或文件名必须加上引号:

"Dir\Programfiles\*"

Dir\"Programfiles"\*

通配符是一个键盘字符,例如星号(*)或问号(?),当执行添加文件、释放文件、选定文件、删除文件等操作时,您可以使用它来代表一个或多个字符。当您不知道真正字符或者不想键入完整名称时,常常使用通配符代替一个或多个字符。

7-Zip支持和Windows相类似的通配符:

“*”可以使用星号代替零个或多个字符。

“?”可以用问号代替名称中的单个字符。

7-Zip使用的并不是系统处理通配符的默认方法,因而7-Zip不支持其它通配符规则,在系统中*.*相当于所有文件。而7-Zip会将其视为任何扩展名的全部文件。所以要处理所有文件您必须使用*通配符。

示例:

*.txt

这样会查找(添加、选定……)所有扩展名是“.txt”的文件

?a*这样会查找(添加、选定……)所有第二个字母为“a”的文件

*1*这样会查找(添加、选定……)所有包含“1”的文件

*.*.*这样会查找(添加、选定……)所有包含“.”的双扩展名文件

如果在命令行中没有文件名,系统将会使用默认通配符“*”。

档案文件中通配符及文件名的使用限制:通配符及文件名不能包括系统盘符或网址。每个通配符及文件名路径将被视为从盘符到当前目录的完整路径/从压缩档案的根目录算起的完整路径。换句话说,路径的开始部分(在首个斜线(“\”)之前的字符)必须是某个名称或通配符。通配符及文件名不能以斜线(“\”)结尾。通配符只可以在完整路径的最后一部分中出现。

示例:

Dir1\*.cpp

正确

c:\Dir1\*.cpp

错误:路径中不能包括盘符

Dir1\Dir2\g?.txt

正确

Dir1\D?r2\file1.txt

错误:只有在以路径的最后一部分才能使用通配符

文件列表

您可以使用文件列表来对要操作的文件进行批量操作。在文件中的文件名必须用空格或另起一行隔开。(如使用空格格开,每一个文件必须加引号)。

7-Zip命令行支持多个文件列表同时操作。

举个例子,这里有一个文件列表“listfile.txt”包含下列内容:

"Myprograms\*.cpp"

Src\*.cpp

那么我们可以输入命令:

[email protected]

将“My programs”及“Src”目录中所有扩展名为“cpp”的文件添加到压缩档案“archive.zip”中。

命令行

命令行的命令不分大小写。

更多有关命令行的详细内容请参阅语法。

命令要点参考

命令

作用说明

a添加

d删除

e释放

l列表

t测试

u更新

x完整路径释放

a(添加)命令

添加文件到压缩档案。

示例

7za-tziparchive.zipsubdir\*

从subdir文件夹添加所有文件到archive.zip压缩档案。

7za-tzipFiles.zip"Programfiles\*"-r

从Program文件夹添加所有文件到Files.zip压缩档案。

可以和此命令结合使用的选项

-i(包括文件名),-m(设置压缩算法),-p(设置密码),-r(递归子目录),-t(设置压缩档案格式),-u(更新选项),-w(设置工作目录),-x(排除文件)

其他命令行:d(删除),u(更新)

选项:-u(更新选项)

d(删除)命令

从压缩档案删除文件。

示例

7zdarchive.zip*.bak

从archive.zip压缩档案中删除*.bak文件。

可以和此命令结合使用的选项

-i(包括文件名),-m(设置压缩算法),-p(设置密码),-r(递归子目录),-u(更新选项),-w(设置工作目录),-x(排除文件)

其他命令行:a(添加),u(更新)

选项:-u(更新选项)

e(释放)命令

从压缩档案中释放文件到当前目录中。或者到指定的输出文件夹。输出文件夹设置可以通过-o(设置输出文件夹)选项来更改。

此命令会将所有被释放的文件放置到一个文件夹。如果您想使用完整路径释放文件,您必须使用x(完整路径释放)命令。

7-Zip在覆盖现有文件时会提示用户如何进行下一步操作。除非用户自定义了-y(全是)选项。

7-Zip所支持的下列回应:

回应简写描述

Yes(是)y

No(否)n

Always(总是)a将所有的询问以YES来对待

Skip(跳过)s将所有的询问以NO来对待

Quit(退出)q退出程序

示例

7zearchive.zip

从压缩档案archive.zip中释放所有文件到当前文件夹。

7zearchive.zip-oc:\soft*.cpp

从压缩档案archive.zip中释放*.cpp文件到c:\soft文件夹。可以和此命令结合使用的选项。

-ao(覆盖模式),-i(包括文件名),-o(设置输出目录),-p(设置密码),-r(递归子目录),-x(排除文件),-y(全是)

其他命令行:x(完整路径释放)

l(列表)命令

列出压缩档案内容。

示例

7zlarchive.zip

列出压缩档案archive.zip的内容。

可以和此命令结合使用的选项

-i(包括文件名),-r(递归子目录),-x(排除文件)

t(测试)命令

测试压缩档案文件的完整性。

示例

7ztarchive.zip*.doc

在压缩档案archive.zip中测试*.doc文件的完整性。

可以和此命令结合使用的选项

-i(包括文件名),-r(递归子目录),-p(设置密码),-x(排除文件)

u(更新)命令

在压缩档案文件中使用较新的文件替换掉较旧的文件。

示例

7zuarchive.zip*.doc

在压缩档案archive.zip中更新*.doc文件。

可以和此命令结合使用的选项

-i(包括文件名),-m(设置压缩算法),-p(设置密码),-r(递归子目录),-t(设置压缩档案格式),-u(更新选项),-w(设置工作目录),-x(排除文件)

其他命令行:a(删除),d(删除)

选项:-u(更新选项)

x(完整路径释放)命令

在当前目录中,使用完整路径从压缩档案中释放文件.或者到指定的输出文件夹。更多详细内容请参阅e(释放)命令。

示例

7zxarchive.zip

从压缩档案archive.zip中释放所有文件到当前文件夹。

7zxarchive.zip-oc:\soft*.cpp

从压缩档案archive.zip中释放*.cpp文件到c:\soft文件夹。

可以和此命令结合使用的选项

-ao(覆盖模式),-i(包括文件名),-o(设置输出目录),-p(设置密码),-r(递归子目录),-x(排除文件),-y(全是)

其他命令行: e (释放

命令行选项

语法

[选项]::=[选项_符号][选项_字符][[选项]]

[选项_符号]::='/'|'-'&ltswitch]::=[switch_symbol][switch_characters][[option]]

[switch_symbol]::='/'|'-'

在命令行中,一个完整的选项由指定的选项、连字符(-)或斜线(/)组成,而且选项的符号不能使用缩写。选项名称不区分大小写。而一部分选项会包括参数变量,它们是需要区分大小写的。

选项可以使用在命令行中的任何位置。有关命令行的详细使用说明请见语法。

选项要点参考

选项说明

–阻止选项解析

-ai附件档案文件名

-an不解析档案名称

-ao覆盖模式

-ax排除档案文件名

-i包括文件名

-m设置压缩算法

-o设置输出目录

-p设置密码

-r递归子目录

-sfx创建自释放档案

-si从StdIn读取数据

-so从StdOut写入数据

-t设置档案类型

-u更新选项

-v创建分卷

-w设置工作目录

-x文件名排除

-y全是

--(阻止选项解析)选项

在命令行中使“--”后的选项开关“-”都失效。这样就允许在命令行中使用文件名以“-”开头的文件。

语法

--

示例

7zt---ArchiveName.7z

测试-ArchiveName.7z压缩档案.

-ai(附件档案文件名)开关

指定附加文件,包括压缩档案文件名及通配符。此选项可同时附加多个类型。

语法

-ai[[recurse_type]][file_ref]

[recurse_type]::=r[-|0]

[file_ref] ::= @{listfile} | !{wildcard}

-an (不解析档案名称) 选项

不解析命令行中的archive_name区域。此选项必须和-i(附加文件)开关一起使用。比如您为压缩档案使用列表文件,您就需要指定-ai选项,所以您需要禁止解析命令行中的archive_name区域。

语法

-an

示例

7zt-an-ai!*.7z-ax!a*.7z

测试除a*.7z之外的*.7z压缩档案。

可以和此选项结合使用的命令

e(释放),l(列表),t(测试),x(完整路径释放)

其它选项:-i(附加文件),-x(排除文件)

-ao(覆盖模式)选项

指定在释放期间如何覆盖硬盘上现有的同名文件。

语法

-ao[a|s|u]

参数说明

-aoa直接覆盖现有文件,而没有任何提示。

-aos跳过现有文件,其不会被覆盖。

-aou如果相同文件名的文件以存在,将自动重命名被释放的文件。举个例子,文件file.txt将被自动重命名为file_1.txt。

-aot如果相同文件名的文件以存在,将自动重命名现有的文件。举个例子,文件file.txt将被自动重命名为file_1.txt。

示例

7zxtest.zip-aoa

从压缩档案test.zip中释放所有文件并却不做提示直接覆盖现有文件。可以和此选项结合使用的命令

e(释放),x(完整路径释放)

其它选项:-y(全是)

-ax(排除档案文件名)选项

指定必须从操作中排除的压缩档案,此选项可同时排除多个类型。

语法

-ax[[recurse_type]][file_ref]

[recurse_type]::=r[-|0]

[file_ref]::=@{listfile}|!{wildcard}

有关此选项参数的详细信息请参见-i(附加文件)选项。

示例

7zt-an-ai!*.7z-ax!a*.7z

测试除a*.7z之外的*.7z压缩档案,可以和此选项结合使用的命令

e(释放),l(列表),t(测试),x(完整路径释放)

其它选项: -i (附加文件), -an (不解析档案名称)

参数

[recurse_type]

指定通配符及文件名,此选项在这里必须使用。如果此选项未被指定,那么将自动使用递归。更多详细信息请参见-r(递归子目录)选项。

[recurse_type]::=r[-|0]

[file_ref]

指定要处理的文件的文件名、通配符或文件列表。

[file_ref]::=@{listfile}|!{wildcard}

选项说明

{listfile}指定文件列表的文件名。参见列表文件的说明。

{wildcard}指定通配符或文件名。

示例

7zt-an-air!*.7z

在当前目录及子目录下测试*.7z压缩档案,可以和此选项结合使用的命令

a(添加),d(删除),e(释放),l(列表),t(测试),u(更新),x(完整路径释放)

其它选项:-ax(排除档案文件名),-an(不解析档案名称)

-i(附加文件)选项

指定附加文件或一类文件,此选项可附件添加多个类型。

语法

-i[[recurse_type]][file_ref]

[recurse_type]::=r[-|0]

[file_ref]::=@{listfile}|!{wildcard}

参量

[recurse_type]

此值在这个选项中必须使用。如果此选项的值不存在,那么将使用被-r(递归子目录)选项所指定的值。更多详细内容请参阅-r(递归子目录)选项。

[recurse_type]::=r[-|0]

[file_ref]

指定文件名或通配符、或使用文件列表来添加文件。

[file_ref]::=@{listfile}|!{wildcard}

参数说明

{listfile}指定文件列表。请参考文件列表相关信息。

{wildcard}指定文件名或通配符。

示例

7za-tzipsrc.zip*.txt-ir!DIR1\*.cpp

从当前目录中添加*.txt文件,和DIR1目录及其子目录中的*.cpp文件到src.zip压缩档案。可以和此选项结合使用的命令

a(添加),d(删除),e(释放),l(列表),t(测试),u(更新),x(完整路径释放)

其它选项:-r(递归子目录),-x(排除文件)

-m(设置压缩算法)选项

指定压缩算法。

语法

-m[method_parameters]

此选项的格式依压缩档案的类型而定。

Zip参数默认值说明

x=[0|5|9]5设置压缩等级。

m={MethodID}Deflate设置压缩算法:Copy、Deflate、Deflate64、BZip2。

fb={NumFastBytes}32设置Deflate编码器的单词大小。

pass={NumPasses}1设置Deflate编码器的传送大小。

X=[0|5|9]

设置压缩等级

压缩等级说明

0不压缩。

5默认的压缩等级。

9最大压缩等级。压缩后的文件会更小。但是在压缩的时候会比较慢而且需要较多的物理内存。

fb={NumFastBytes}设置Deflate编码器的单词大小。您可以在3到255范围之内更改。在Deflate算法下,它的默认值是32;在Deflate64算法下,它的默认值是64。如果要压缩的多个文件中,有很多排列相同的字节,比如说内容及格式极为相同的两个纯文本文档,那么在压缩的时候如果有较大的单词大小,将会在一定程度上提高压缩比。所以通常情况下,其数量越大,压缩后的文件就会越小。但是在压缩和解压缩的时候会比较慢而且需要较多的物理内存。

pass={NumPasses}设置Deflate编码器的传送大小。您可以在1到4范围之内更改。在Deflate算法下,它的默认值是1;在Deflate64算法下,它的默认值是3。此项可略微提升压缩比,但并不明显。

Gzip除了GZip不支持“储存”压缩算法之外,GZip和Zip一样使用着相同的参数。

7z参数

默认说明

x=[0|1|5|7|9]

5设置压缩等级。

s=[off|on|[e][{N}f][{N}b|{N}k|{N}m|{N}g]

on设置固实模式。

f=[off|on]

on开启或关闭可执行文件压缩过滤器。

hc=[off|on]

on开启或关闭档案文件头压缩。

hcf=[off|on]

on开启或关闭档案文件头完全压缩。

he=[off|on]

off开启或关闭档案文件头加密。

b{C1}[s{S1}]:{C2}[s{S2}]

设置编码器之间绑定。

{N}={MethodID}[:param1][:param2][..]

LZMA设置压缩算法:LZMA、PPMd、BZip2、Deflate、BCJ、BCJ2、Copy。

mt=[off|on]

off

设置多线程模式。

x=[0|1|5|7|9]

设置压缩等级

压缩等级说明

0不压缩.

1快速压缩:LZMA快速算法、32KB字典大小、HC3Matchfinder、BCJ过滤器。

5正常压缩:LZMA标准算法、2MB字典大小、BT4Matchfinder、单词大小为32、BCJ过滤器。

7最大压缩:LZMA最大算法、8MB字典大小、BT4Matchfinder、单词大小为64、BCJ过滤器。

9极限压缩:LZMA最大算法、32MB字典大小、BT4bMatchfinder、单词大小为64、BCJ2过滤器。

s=[off|on|[e][{N}f][{N}b|{N}k|{N}m|{N}g)]开启或关闭固实模式。此选项的默认值是s=on。开启或关闭固实压缩档案模式。在创建固实压缩档案模式中,它把压缩档案中的所有文件都当成一个连续数据流来看待。通常情况下,固实压缩可增加压缩比,特别是在添加大量小文件的时候。

e为每一种文件扩展名使用单独的固实数据流

{N}f设置在一个固实数据流种文件的个数

{N}b|{N}k|{N}m|{N}g设置固实数据流的大小(字节)

不同的压缩等级对固实数据流大小的限制:

压缩等级大小储存

快速16MB

正常256MB

最大1GB

极限4GB

对固实数据流大小的限制虽然能应响到压缩比,但是它还是有相当多的优势:

万一压缩档案损坏,并不会丢失所有数据。减少了文件的释放时间。

在当前的版本中,您只能更新在压缩时未选择“创建固实压缩档案”的压缩档案。也就是说当前版本不支持固实压缩档案的更新。

示例:

-s=100f10m

设置固实模式使每个固实数据流种最多100文件,并且最大10MB。

f=[off|on]

开启或关闭可执行文件压缩过滤器:dll、exe、ocx、sfx、sys。它用于BCJ2过滤器(使用极限压缩)及BCJ过滤器中。此选项的默认值是f=on.

hc=[off|on]

开启或关闭档案文件头压缩。此选项的默认值是hc=on。如果开启档案文件头压缩,一部分档案的文件头将使用LZMA算法进行压缩。

hcf=[off|on]

开启或关闭档案文件头完全压缩。此选项的默认值是hcf=on。如果开启档案文件头完全压缩,那么此压缩档案只有7-Zip2.30beta25及更高的版本才能支持。

he=[off|on]

开启或关闭档案文件头加密。此选项的默认值是he=off。

{N}

设置算法的顺序。它也可以用算法关联参数。最小值为0。含有从号的算法将被首先使用。

b{C1}[s{S1}]:{C2}[s{S2}]

将输出流S1及编码器C2中的输入流S2与编码器C1绑定。如果未指定流的大小,那么大小将为0。通常情况下,编码器有一个输入流及一个输出流。而在7z中,一些编码器有多个输入及输出流。

举个例子,BCJ2编码器有有关输入流及四个输出流。

mt=[off|on]

开启或关闭多线程压缩模式。在多线程支持模式中,7-Zip将使用两个线程来进行压缩。这样的话,对于多处理器系统,那么压缩速度将提升70-80%。对于Pentium4超线程处理器,压缩速度将提升25%左右。但解压缩时只使用单独线程。注意!此选项仅对LZMA压缩算法有效。

{N}={MethodID}[:param1][:param2]...[:paramN]

设置压缩算法。在7z格式中,您可以使用许多压缩算法。此选项的默认算法是LZMA。此参数必须是下列格式中的任意一种:

{ParamName}={ParamValue}。

{ParamName}{ParamValue},{ParamValue} 是一个数值,并且 {ParamName} 中不包含数字。

支持的压缩算法:

MethodID说明

LZMA基于LZ之上的压缩算法。

PPMd基于DmitryShkarin之上的算法PPMdH并加以优化。通常能对纯文本提供高压缩比及较快的解压缩速度。

Bzip2基于BWT的标准压缩算法。通常能对纯文本提供较高压缩比及相当不错的解压缩速度。

DeflateZIP及GZip格式的标准压缩算法。没有很高的压缩比。但是它拥有十分快的压缩及解压缩速度。Deflate压缩算法只支持32KB字典大小。

BCJ(CALL、JUMP)32位x86可执行文件转换器。

BCJ2(CALL、JUMP、JCC)32位x86可执行文件转换器(第二版)。

Copy            不压缩。

LZMA

LZMA是基于Lempel-Ziv(由以色列数学家A.Lempel和J.Ziv共同开发的压缩算法)之上的压缩算法。它能提供相当快的解压缩速度(约比压缩快10到20倍)。对内存的需求也不尽相同(详细信息请参见d={Size}[b|k|m]选项)。

参数默认值说明

a=[0|1|2]1设置压缩等级

d={Size}[b|k|m]20设置字典大小

mf={MF_ID}bt4设置匹配器

fb={N}32设置紧缩字节数量

lc={N}3设置LiteralContext块数-[0,8]

lp={N}0设置LiteralPos块数-[0,4]

pb={N}2设置Pos块数-[0,4]

a=[0|1|2]

设置压缩等级:0=快速、1=正常、2=最大压缩。默认值为1。

d={Size}[b|k|m]

设置LZMA压缩算法的字典大小。您可以使用字节、KB或MB来指定此项。字典大小的最大值为256MB=2^28字节。正常模式下,LZMA的字典大小默认值为21(2MB);最大模式(-mx=7)下为23(8MB);极限模式(-mx=9)下为25(32MB)。如果您未指定[b|k|m]项,字典大小将自动根据压缩等级来选择相应的单位。对于LZMA算法的文件解压缩,若压缩文件的字典大小为64MB,则解压缩时就需要64兆可用的物理内存。

mf={MF_ID}

设置LZMA压缩算法的匹配器。默认算法为bt4。bt*类的算法所需的内存比pat*类所需的内存少。通常情况下bt4的工作速度比pat*快得多,然而部分文件格式在pat*算法中可以工作得很快。hc*类算法并没有很好得压缩比,但是它与快速模式(a=0)结合使用通常会工作得相当快。所需内存依字典大小而定(参见下表)。

MF_ID所需内存说明

bt2d×9.5+1MB二进制树;2散列字节。

Bt3d×9.5+65MB二进制树;2-3(完整)散列字节。

Bt4d×9.5+6MB二进制树;2-3-4散列字节。

Bt4bd×9.5+34MB二进制树;2-3-4(大)散列字节。

Pat2rd×26+1MBPatricia树;2-位节点;可移动。

Pat2d×38+1MBPatricia树;2-位节点。

Pat2hd×38+77MBPatricia树;2-位节点;2-3散列字节。

Pat3hd×62+85MBPatricia树;3-位节点;2-3散列字节。

Pat4hd×110+101MBPatricia树;4-位节点;2-3散列字节。

Hc3d×5.5+1MBHashChain;-3散列字节。

Hc4d×5.5+6MBHashChain;2-3-4散列字节。

注意:操作系统同样需要一部分物理内存来维持系统得正常运行,所以至少要剩余32可用物理内存。

fb={N}

设置LZMA压缩算法的紧缩字节。有效范围从5到255。正常模式下默认值为32;最大模式下为64。通常情况下,较大的数值能略微提高压缩比。但同时也会降低压缩速度。

lc={N}

设置LiteralContext位数。有效范围从0到8。默认值为3。有时压缩档案中含有大文件会自动使用lc=4。

lp={N}

设置LiteralPos位数。有效范围从0到4。默认值为0。

pb={N}

设置Pos位数。有效范围从0到4。默认值为2。

PPMd

PPMd是PPM-based压缩算法的简写。它基于DmitryShkarin的算法PPMdH并对其源代码加以优化。PPMd通常能对纯文本提供高压缩比及较快的解压缩速度。压缩和解压缩的速度完全相同,所需的内存大小也一样。

参数默认值说明

mem={Size}[b|k|m]24设置PPMd算法使用内存。

o={Size}6设置PPMd算法压缩命令。

mem={Size}[b|k|m]

设置PPMd算法使用的内存多少。您可以使用字节、KB或MB来指定此项。最大值为2GB=2^31字节;默认值为24(16MB)。如果您未指定[b|k|m]项,字典大小将自动根据压缩等级来选择相应的单位。PPMd在压缩和解压缩时所需的内存大小是相同的。

o={Size}

设置PPMd算法压缩命令。其大小必须在[2,32]范围内。默认值为6。

BCJ2

BCJ2是32位x86可执行文件转换器(第二版)。它通过转换分支指令来对文件进行进一步压缩。

BCJ2编码器有一个输入流和四个输出流:

s0:干流。提供进一步的压缩。

s1:CALL值转换流。提供进一步的压缩。

s2:JUMP值转换流。提供进一步的压缩。

s3:服务流。它已经备压缩过。

如果使用LZMA压缩算法,s1及s2流的字典大小将会比s0流的小(512KB)。

示例

7za-tziparchive.zip*.jpg-m0

不压缩而直接将*.jpg文件添加到archive.zip档案。

7za-t7zarchive.7z*.exe*.dll-m0=BCJ-m1=LZMA:d=21-ms-mmt

添加*.exe及*.dll文件到固实压缩档案archive.7z。使用LZMA压缩算法、2MB字典大小及BCJ转换器。压缩将开启多线程优化(如果可用)。

7za-t7zarchive.7z*.exe*.dll-m0=BCJ2-m1=LZMA:d23-m2=LZMA:d19-m3=LZMA:d19-mb0:1-mb0s1:2-mb0s2:3

添加*.exe及*.dll文件到压缩档案archive.7z。使用LZMA压缩算法、BCJ2转换器、为主输出流(s0)使用8MB字典大小、LZMA算法为BCJ2转换器的s1及s2输出流使用512KB字典大小。

7za-t7zarchive.7z*.txt-m0=PPMd

添加*.txt文件到压缩档案archive.7z。使用PPMd压缩算法。

可以和此选项结合使用的命令

a(添加),d(删除),u(更新)

其它选项:-t(设置压缩档案格式)

-p(设置密码)选项

指定密码。

语法

-p{password}

{password}

指定密码。

示例

7zxarchive.zip-psecret

将设有密码“secret”的压缩档案archive.zip中所有文件释放。可以和此选项结合使用的命令:

a(添加),d(删除),e(释放),t(测试),u(更新),x(完整路径释放)

-r(递归子目录)选项

把命令行中的通配符及文件名以指定的方法对待。

语法

-r[-|0]

选项说明

-r开启递归子目录。对于e(释放)、l(列表)、t(测试)、x(完整路径释放)这些在压缩档案中操作的命令,会默认使用此选项。

-r-关闭递归子目录。对于a(添加)、d(删除)、u(更新)等所有需扫描磁盘文件的命令,会默认使用此选项。

-r0开启递归子目录。但只应用于通配符。

示例

7zlarchive.zip-r-*.doc

列出在archive.zip压缩档案中根目录下的*.doc文件。

7za-tziparchive.zip-rsrc\*.cppsrc\*.h

将src目录及其子目录中的*.cpp及*.h文件添加到archive.zip压缩档案。

可以和此选项结合使用的命令

a(添加),d(删除),e(释放),l(列表),t(测试),u(更新),x(完整路径释放)

其它选项:-i(附加文件),-x(排除文件)

-sfx (创建自释放档案) 选项

创建自释放档案。

语法

-sfx[{SFX_Module}]

{SFX_Module}指定将被添加到压缩档案的自释放(SFX)模块。然而被指定的模块必须和7z.exe文件在同一目录。如果{SFX_Module}未指定,7-Zip将使用命令行自释放模块7zCon.sfx。

SFX_Module说明

7zC.sfxWindows版本。

7zCon.sfx命令行(DOS)版本。

7zS.sfxWindows安装版本。

7zSD.sfxWindows安装版本(需调用MSVCRT.dll)。

除 7zC.sfx 之外,大多数的自释放模块都是未压缩的。 您可以使用 UPX 程序 (http://upx.sourceforge.net) 来压缩这些模块。在使用 UPX 程序压缩之后,自释放模块的大小将比压缩之前减小 40-50%。

自释放安装模块

自释放安装模块(7zS.sfx和7zSD.sfx)可让您创建软件的安装程序。这类模块将释放文件到一临时文件夹,然后运行指定的程序来进行安装。安装之后再自动删除临时文件。要创建自释放档案必须有三个文件:自释放模块、安装程序配置、7z压缩档案。其中安装程序配置文件是可选的。您可以使用下列命令来创建安装程序:

copy/b7zS.sfx+config.txt+archive.7zarchive.exe

请注意上述文件的输入顺序:*.sfx、*.txt、*.7z。最后的archive.exe即为生成的安装程序。

选项 -y 使用在自释放安装模块中可设置释放时是否为安静模式。

安装程序配置文件格式

配置文件包括安装程序的命令行。文件要以字串;!@Install@!UTF-8!开头,以;!@InstallEnd@!结尾。且文件必须使用UTF-8编码。文件中还需包含下列变量:

ID_String="Value"

ID_String

说明

Title对话框信息标题。

BeginPrompt安装前提示信息。

RunProgram欲执行命令。若添加子命令%%T则会把文件释放到系统的临时目录。

您可以省略上述任何一部分。

配置文件示例

;!@Install@!UTF-8!

title="7-Zip1.00"

BeginPrompt="应用程序将安装7-Zip1.00,是否继续?"

RunProgram="Setup.exe/T:%%T"

;!@InstallEnd@!

程序将以BeginPrompt中的信息提示用户,再执行RunProgram中的命令。然后程序将使用.inf文件的内容并调用压缩包中的advpack.dll文件进行安装。

示例

7za-sfxa.exe*.txt

添加*.txt文件到自释放档案a.exe并使用默认的命令行自释放模块。

7za-sfx7zC.sfxa.exe*-r

添加所有文件到自释放档案a.exe并使用7zC.sfxWindows版本的自释放模块。

可以和此选项结合使用的命令

a(添加),d(删除),u(更新)

v

-si(从stdin读取数据)选项

使7-Zip从stdin中使用数据(标准输入流)。

语法

-si{file_name}

{file_name}

为要压缩的数据指定一个将要储存在压缩档案中的名称。如果file_name未被指定,数据将被储存而没有名称。

注意:当前版本的7-Zip不支持从stdin中读取压缩档案。

示例

7zaarchive.gz-tgzip-siDoc2.txt[Doc.txt

使用Doc2.txt文件名压缩输入流从文件Doc.txt到压缩档案archive.gz。

可以和此选项结合使用的命令

a(添加),u(更新)

-so(从stdout写入数据)选项

使7-Zip从stdout中使用数据(标准输出流)。

语法

-so

示例

7zxarchive.gz-so]Doc.txt

解压缩archive.gz输出流并将该输出流写入到Doc.txt文件。

7zadummy-tgzip-soDoc.txt]archive.gz

压缩Doc.txt输出流并将该输出流写入到archive.gz压缩档案。

可以和此选项结合使用的命令

a(添加),e(释放),u(更新),x(完整路径释放)

-t(设置压缩档案格式)选项

指定压缩档案格式。

语法

-t{archive_type}

{archive_type}指定压缩档案格式。它们可以是:zip、7z、rar、cab、gzip、bzip2、tar或其它格式。而默认值是7z格式。

示例

7za-tziparchive.zip*.txt

使用zip格式从当前目录中添加所有*.txt文件到压缩档案archive.zip。

可以和此选项结合使用的命令:

a(添加),u(更新)

-u(更新选项)选项

指定压缩档案中文件的更新及创建的方式。

语法

-u[-][action_set][!{new_archive_name}]

[action_set]::=[state_action]...

[state_action]::=[state][action]

[state]::=p|q|r|x|y|z|w

[action]::=0|1|2|3

参量

连字符(-)

对原压缩档案不进行任何更新。

{new_archive_name}指定新压缩档案的路径。

[state]

[state]::=p|q|r|x|y|z|w

每个文件名都会赋予下列六个变量:

[state]

状态说明磁盘上的文件压缩档案中的文件

p文件在压缩档案中,但并不和磁盘上的文件相匹配。存在,但并不匹配

q文件在压缩档案中,但磁盘上并不存在。不存在存在

r文件不在压缩档案中,但磁盘上存在。存在不存在

x压缩档案中的文件比磁盘上的文件新。较旧较新

y压缩档案中的文件比磁盘上的文件旧。较新较旧

z压缩档案中的文件和磁盘上的文件相同。相同相同

w不能检测文件是否较新(时间相同但大小不同)??

[action]

为适当的[state]指定动作。

[action]::=0|1|2|3

您可以指定下列四个动作变量中的任意一个:

[action]

说明

0忽略文件(在压缩档案中不为此文件创建项目)

1复制文件(用压缩档案中的新文件覆盖旧文件)

2压缩文件(将磁盘上的新文件压缩到档案中)

3创建剔除项(释放过程中将删除文件或目录项)。此功能只支持7z格式。

注意

任何的更新命令(如a(添加)、d(删除)、u(更新))都可以被分配到下列项目中。

下列表格中显示的是更新命令的动作设置。

示例

7zuc:\1\exist.7z-u--up0q3x2z0!c:\1\update.7z*-r

创建新压缩档案update.7z并将当前目录中的exist.7z压缩档案里所有不同文件写入此压缩档案。并不更改exist.7z压缩档案的内容。可以和此选项结合使用的命令:

a(添加),d(删除),u(更新)

-v(创建分卷)选项

指定分卷大小。

语法

-v{Size}[b|k|m|g]

{Size}[b|k|m|g]

指定分卷大小,可以使用字节、KB(1KB=1024字节),MB(1MB=1024KB)或GB(1GB=1024MB)。如果您只指定了{Size},7-zip将把它视为字。您可以同时指定多个-v选项。

示例

7zaa.7z*.txt-v10k-v15k-v2m

创建a.7z分卷压缩档案。第一个分卷为10KB,第二个为15KB,剩下全部为2MB。

可以和此选项结合使用的命令

a(添加)

-w(设置工作目录)选项

为文件压缩设置临时的工作目录。默认情况下,7-Zip新建一个压缩档案时,会临时在当前目录创建一个基本压缩档案。然而通过指定此选项,您可以设置基本压缩档案的生成目录,也就是工作目录。当压缩完成时,它将会被重命名为压缩前您所指定的文件名,然后删除在临时目录中的原始压缩档案。

语法

-w[{dir_path}]

{dir_path}指定目标文件夹。

如果[dir_path]未指定,那么7-Zip将使用Windows默认的临时目录。

示例

7za-tziparchive.zip*.cpp-wc:\temp

添加*.cpp文件到archive.zip压缩档案,并将临时压缩档案创建到c:\temp文件夹。

可以和此选项结合使用的命令

a(添加),d(删除),u(更新)

-x(排除文件)选项

指定某一文件或某一类文件从操作中排除,此选项可同时排除多个类型。

语法

-x[[recurse_type]][file_ref]

[recurse_type]::=r[-|0]

[file_ref]::=@{listfile}|!{wildcard}

更多详细内容请参阅-i(附加文件)选项。

示例

7za-tziparchive.zip*.txt-x!temp.*

添加除temp.*文件之外的所有*.txt文件到压缩档案archive.zip。可以和此选项结合使用的命令:

a(添加),d(删除),e(释放),l(列表),t(测试),u(更新),x(完整路径释放)

其它选项:-r(递归子目录),-i(附加文件)

-y(全是)选项

使7-Zip执行命令时的大多数提示失效。您可以使用此选项来阻止在e(释放)和x(完整路径释放)命令中文件覆盖时的提示。

语法-y示例

7zxsrc.zip-y从src.zip释放所有文件。所有的覆盖提示将被阻止且所有相同文件名的文件将被覆盖。可以和此选项结合使用的命令:

e(释放),x(完整路径释放)

其它选项:-ao(覆盖模式)

相关推荐