Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134579
  • 博文数量: 32
  • 博客积分: 115
  • 博客等级: 民兵
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-30 23:19
个人简介

The minute you think of giving up, think of the reason why you held on so long!

文章分类

全部博文(32)

文章存档

2018年(4)

2016年(8)

2015年(2)

2014年(11)

2013年(6)

2012年(1)

我的朋友

分类: WINDOWS

2013-03-15 12:06:18

记录下来,留着
7zip命令行中文说明

7z.exe 是 7-Zip 的命令行版本。7z.exe 使用 7-Zip 的其它模块,7za.exe 7-Zip 的独立版本,7za.exe 仅支持 7zzipgzipbzip2 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\Program files\*"
Dir\"Program files"\*
通配符是一个键盘字符,例如星号(*)或问号(?),当执行添加文件、释放文件、选定文件、删除文件等操作时,您可以使用它来代表一个或多个字符。当您不知道真正字符或者不想键入完整名称时,常常使用通配符代替一个或多个字符。
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”包含下列内容:
"My programs\*.cpp"
Src\*.cpp
那么我们可以输入命令:
7z a -tzip archive.zip @listfile.txt
“My programs”“Src”目录中所有扩展名为“cpp”的文件添加到压缩档案“archive.zip”中。

命令行
命令行的命令不分大小写。
更多有关命令行的详细内容请参阅 语法。
命令要点参考
命令
作用说明
a   
添加
d   
删除
e   
释放
l   
列表
t   
测试
u   
更新
x   
完整路径释放
a (
添加) 命令
添加文件到压缩档案。
示例
7z a -tzip archive.zip subdir\*
subdir 文件夹添加所有文件到 archive.zip 压缩档案。
7z a -tzip Files.zip "Program files\*" -r
Program 文件夹添加所有文件到 Files.zip 压缩档案。
可以和此命令结合使用的选项
-i (
包括文件名) -m (设置压缩算法) -p (设置密码) -r (递归子目录) -t (设置压缩档案格式) -u (更新选项) -w (设置工作目录) -x (排除文件)
其他命令行: d (删除) u (更新)
选项: -u (更新选项)
d (
删除) 命令
从压缩档案删除文件。
示例
7z d archive.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    退出程序
示例
7z e archive.zip
从压缩档案 archive.zip 中释放所有文件到当前文件夹。
7z e archive.zip -oc:\soft *.cpp
从压缩档案 archive.zip 中释放 *.cpp 文件到 c:\soft 文件夹。可以和此命令结合使用的选项。
-ao (
覆盖模式) -i (包括文件名) -o (设置输出目录) -p (设置密码) -r (递归子目录) -x (排除文件) -y (全是)
其他命令行: x (完整路径释放)
l (
列表) 命令
列出压缩档案内容。
示例
7z l archive.zip
列出压缩档案 archive.zip 的内容。
可以和此命令结合使用的选项
-i (
包括文件名) -r (递归子目录) -x (排除文件)
t (
测试) 命令
测试压缩档案文件的完整性。
示例
7z t archive.zip *.doc
在压缩档案 archive.zip 中测试 *.doc 文件的完整性。
可以和此命令结合使用的选项
-i (
包括文件名) -r (递归子目录) -p (设置密码) -x (排除文件)
u (
更新) 命令
在压缩档案文件中使用较新的文件替换掉较旧的文件。
示例
7z u archive.zip *.doc
在压缩档案 archive.zip 中更新 *.doc 文件。
可以和此命令结合使用的选项
-i (
包括文件名) -m (设置压缩算法) -p (设置密码) -r (递归子目录) -t (设置压缩档案格式) -u (更新选项) -w (设置工作目录) -x (排除文件)
其他命令行: a (删除) d (删除)
选项: -u (更新选项)
x (
完整路径释放) 命令
在当前目录中,使用完整路径从压缩档案中释放文件.或者到指定的输出文件夹。更多详细内容请参阅 e (释放) 命令。
示例
7z x archive.zip
从压缩档案 archive.zip 中释放所有文件到当前文件夹。
7z x archive.zip -oc:\soft *.cpp
从压缩档案 archive.zip 中释放 *.cpp 文件到 c:\soft 文件夹。
可以和此命令结合使用的选项
-ao (
覆盖模式) -i (包括文件名) -o (设置输出目录) -p (设置密码) -r (递归子目录) -x (排除文件) -y (全是)
其他命令行: e (释放

命令行选项
语法
[
选项]::= [选项_符号][选项_字符][[选项]]
[
选项_符号] ::= '/' | '-' <switch]::= [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       
全是
-- (
阻止选项解析) 选项
在命令行中使“--”后的选项开关“-”都失效。这样就允许在命令行中使用文件名以“-”开头的文件。
语法
--
示例
7z t -- -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
示例
7z t -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
示例
7z x test.zip -aoa
从压缩档案 test.zip 中释放所有文件并却不做提示直接覆盖现有文件。可以和此选项结合使用的命令
e (
释放) x (完整路径释放)
其它选项: -y (全是)
-ax (
排除档案文件名) 选项
指定必须从操作中排除的压缩档案,此选项可同时排除多个类型。
语法
-ax[[recurse_type]][file_ref]
[recurse_type] ::= r[- | 0]
[file_ref] ::= @{listfile} | !{wildcard}
有关此选项参数的详细信息请参见 -i (附加文件) 选项。
示例
7z t -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}       
指定通配符或文件名。
示例
7z t -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}       
指定文件名或通配符。
示例
7z a -tzip src.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       
设置压缩算法:CopyDeflateDeflate64BZip2
fb={NumFastBytes}    32       
设置 Deflate 编码器的单词大小。
pass={NumPasses}        1       
设置 Deflate 编码器的传送大小。
X=[0 | 5 | 9 ]
设置压缩等级
压缩等级        说明
0           
不压缩。
5           
默认的压缩等级。
9           
最大压缩等级。压缩后的文件会更小。但是在压缩的时候会比较慢而且需要较多的物理内存。
fb={NumFastBytes}   
设置 Deflate 编码器的单词大小。您可以在 3 255 范围之内更改。在 Deflate 算法下,它的默认值是 32;在 Deflate 64 算法下,它的默认值是 64。如果要压缩的多个文件中,有很多排列相同的字节,比如说内容及格式极为相同的两个纯文本文档,那么在压缩的时候如果有较大的单词大小,将会在一定程度上提高压缩比。所以通常情况下,其数量越大,压缩后的文件就会越小。但是在压缩和解压缩的时候会比较慢而且需要较多的物理内存。
pass={NumPasses}       
设置 Deflate 编码器的传送大小。您可以在 1 4 范围之内更改。在 Deflate 算法下,它的默认值是 1;在 Deflate 64 算法下,它的默认值是 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
设置压缩算法:LZMAPPMdBZip2DeflateBCJBCJ2Copy
mt=[off | on]
off
设置多线程模式。
x=[0 | 1 | 5 | 7 | 9 ]
设置压缩等级
压缩等级        说明
0           
不压缩.
1           
快速压缩:LZMA 快速算法、32KB 字典大小、HC3 Match finderBCJ 过滤器。
5           
正常压缩:LZMA 标准算法、2 MB 字典大小、BT4 Match finder、单词大小为 32BCJ 过滤器。
7           
最大压缩:LZMA 最大算法、8 MB 字典大小、BT4 Match finder、单词大小为 64BCJ 过滤器。
9           
极限压缩:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、单词大小为 64BCJ2 过滤器。
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       
设置固实数据流的大小(字节)
不同的压缩等级对固实数据流大小的限制:
压缩等级        大小    储存
快速        16 MB
正常        256 MB
最大        1 GB
极限        4 GB
对固实数据流大小的限制虽然能应响到压缩比,但是它还是有相当多的优势:
万一压缩档案损坏,并不会丢失所有数据。减少了文件的释放时间。
在当前的版本中,您只能更新在压缩时未选择创建固实压缩档案的压缩档案。也就是说当前版本不支持固实压缩档案的更新。
示例:
-s=100f10m
设置固实模式使每个固实数据流种最多 100 文件,并且最大 10 MB
f=[off | on]
开启或关闭可执行文件压缩过滤器:dllexeocxsfxsys。它用于 BCJ2 过滤器(使用极限压缩) BCJ 过滤器中。此选项的默认值是 f=on.
hc=[off | on]
开启或关闭档案文件头压缩。此选项的默认值是 hc=on。如果开启档案文件头压缩,一部分档案的文件头将使用 LZMA 算法进行压缩。
hcf=[off | on]
开启或关闭档案文件头完全压缩。此选项的默认值是 hcf=on。如果开启档案文件头完全压缩,那么此压缩档案只有 7-Zip 2.30 beta 25 及更高的版本才能支持。
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%。对于 Pentium 4 超线程处理器,压缩速度将提升 25% 左右。但解压缩时只使用单独线程。注意!此选项仅对 LZMA 压缩算法有效。
{N}={MethodID}[:param1][:param2] ... [:paramN]
设置压缩算法。在 7z 格式中,您可以使用许多压缩算法。此选项的默认算法是 LZMA。此参数必须是下列格式中的任意一种:
{ParamName}={ParamValue}

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

支持的压缩算法:
MethodID       
说明
LZMA           
基于 LZ 之上的压缩算法。
PPMd           
基于 Dmitry Shkarin 之上的算法 PPMdH 并加以优化。通常能对纯文本提供高压缩比及较快的解压缩速度。
Bzip2       
基于 BWT 的标准压缩算法。通常能对纯文本提供较高压缩比及相当不错的解压缩速度。
Deflate        ZIP
GZip 格式的标准压缩算法。没有很高的压缩比。但是它拥有十分快的压缩及解压缩速度。Deflate 压缩算法只支持 32 KB 字典大小。
BCJ            (CALL
JUMP)32 x86 可执行文件转换器。
BCJ2            (CALL
JUMPJCC)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           
设置 Literal Context 块数 - [0, 8]
lp={N}    0           
设置 Literal Pos 块数 - [0, 4]
pb={N}    2           
设置 Pos 块数 - [0, 4]
a=[0|1|2]
设置压缩等级:0=快速、1=正常、2=最大压缩。默认值为 1
d={Size}[b|k|m]
设置 LZMA 压缩算法的字典大小。您可以使用字节、KB MB 来指定此项。字典大小的最大值为 256 MB2^28 字节。正常模式下,LZMA 的字典大小默认值为 21(2 MB) ;最大模式(-mx=7)下为 23(8 MB);极限模式(-mx=9)下为 25(32 MB)。如果您未指定 [b|k|m] 项,字典大小将自动根据压缩等级来选择相应的单位。对于 LZMA 算法的文件解压缩,若压缩文件的字典大小为 64 MB,则解压缩时就需要 64 兆可用的物理内存。
mf={MF_ID}
设置 LZMA 压缩算法的匹配器。默认算法为 bt4bt* 类的算法所需的内存比 pat* 类所需的内存少。通常情况下 bt4 的工作速度比 pat* 快得多,然而部分文件格式在 pat* 算法中可以工作得很快。hc* 类算法并没有很好得压缩比,但是它与快速模式(a=0)结合使用通常会工作得相当快。所需内存依字典大小而定(参见下表)
MF_ID       
所需内存        说明
bt2        d×9.5 + 1 MB   
二进制树;2 散列字节。
Bt3        d×9.5 + 65 MB   
二进制树;2-3(完整) 散列字节。
Bt4        d×9.5 + 6 MB   
二进制树;2-3-4 散列字节。
Bt4b        d×9.5 + 34 MB   
二进制树;2-3-4() 散列字节。
Pat2r    d×26 + 1 MB        Patricia
树;2-位节点;可移动。
Pat2        d×38 + 1 MB        Patricia
树;2-位节点。
Pat2h    d×38 + 77 MB    Patricia
树;2-位节点;2-3 散列字节。
Pat3h    d×62 + 85 MB    Patricia
树;3-位节点;2-3 散列字节。
Pat4h    d×110 + 101 MB    Patricia
树;4-位节点;2-3 散列字节。
Hc3        d×5.5 + 1 MB    Hash Chain
-3 散列字节。
Hc4        d×5.5 + 6 MB    Hash Chain
2-3-4 散列字节。
注意:操作系统同样需要一部分物理内存来维持系统得正常运行,所以至少要剩余 32 可用物理内存。
fb={N}
设置 LZMA 压缩算法的紧缩字节。有效范围从 5 255。正常模式下默认值为 32;最大模式下为 64 。通常情况下,较大的数值能略微提高压缩比。但同时也会降低压缩速度。
lc={N}
设置 Literal Context 位数。有效范围从 0 8。默认值为 3。有时压缩档案中含有大文件会自动使用 lc=4
lp={N}
设置 Literal Pos 位数。有效范围从 0 4。默认值为 0
pb={N}
设置 Pos 位数。有效范围从 0 4。默认值为 2
PPMd
PPMd
PPM-based 压缩算法的简写。它基于 Dmitry Shkarin 的算法 PPMdH 并对其源代码加以优化。PPMd 通常能对纯文本提供高压缩比及较快的解压缩速度。压缩和解压缩的速度完全相同,所需的内存大小也一样。
参数                    默认值        说明
mem={Size}[b|k|m]    24           
设置 PPMd 算法使用内存。
o={Size}                6           
设置 PPMd 算法压缩命令。
mem={Size}[b|k|m]
设置 PPMd 算法使用的内存多少。您可以使用字节、KB MB 来指定此项。最大值为 2 GB2^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 流的小(512 KB)
示例
7z a -tzip archive.zip *.jpg -m0
不压缩而直接将 *.jpg 文件添加到 archive.zip 档案。
7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
添加 *.exe *.dll 文件到固实压缩档案 archive.7z。使用 LZMA 压缩算法、2 MB 字典大小及 BCJ 转换器。压缩将开启多线程优化(如果可用)
7z a -t7z archive.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)使用 8 MB 字典大小、LZMA 算法为 BCJ2 转换器的 s1 s2 输出流使用 512 KB 字典大小。
7z a -t7z archive.7z *.txt -m0=PPMd
添加 *.txt 文件到压缩档案 archive.7z。 使用 PPMd 压缩算法。
可以和此选项结合使用的命令
a (
添加) d (删除) u (更新)
其它选项: -t (设置压缩档案格式)
-p (
设置密码) 选项
指定密码。
语法
-p{password}
{password}
指定密码。
示例
7z x archive.zip -psecret
将设有密码“secret”的压缩档案 archive.zip 中所有文件释放。可以和此选项结合使用的命令:
a (
添加) d (删除) e (释放) t (测试) u (更新) x (完整路径释放)
-r (
递归子目录) 选项
把命令行中的通配符及文件名以指定的方法对待。
语法
-r[- | 0]
选项        说明
-r       
开启递归子目录。对于 e (释放)l (列表)t (测试)x (完整路径释放) 这些在压缩档案中操作的命令, 会默认使用此选项。
-r-       
关闭递归子目录。对于 a (添加)d (删除)u (更新) 等所有需扫描磁盘文件的命令,会默认使用此选项。
-r0       
开启递归子目录。但只应用于通配符。
示例
7z l archive.zip -r- *.doc
列出在 archive.zip 压缩档案中根目录下的 *.doc 文件。
7z a -tzip archive.zip -r src\*.cpp src\*.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.sfx        Windows
版本。
7zCon.sfx   
命令行(DOS)版本。
7zS.sfx        Windows
安装版本。
7zSD.sfx        Windows
安装版本(需调用 MSVCRT.dll)
7zC.sfx 之外,大多数的自释放模块都是未压缩的。 您可以使用 UPX 程序 () 来压缩这些模块。在使用 UPX 程序压缩之后,自释放模块的大小将比压缩之前减小 40-50%

自释放安装模块
自释放安装模块(7zS.sfx 7zSD.sfx)可让您创建软件的安装程序。这类模块将释放文件到一临时文件夹,然后运行指定的程序来进行安装。安装之后再自动删除临时文件。要创建自释放档案必须有三个文件:自释放模块、安装程序配置、7z 压缩档案。其中安装程序配置文件是可选的。您可以使用下列命令来创建安装程序:
copy /b 7zS.sfx + config.txt + archive.7z archive.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-Zip 1.00"
BeginPrompt="
应用程序将安装 7-Zip 1.00,是否继续?"
RunProgram="Setup.exe /T:%%T"
;!@InstallEnd@!
程序将以 BeginPrompt 中的信息提示用户,再执行 RunProgram 中的命令。然后程序将使用 .inf 文件的内容并调用压缩包中的 advpack.dll 文件进行安装。
示例
7z a -sfx a.exe *.txt
添加 *.txt 文件到自释放档案 a.exe 并使用默认的命令行自释放模块。
7z a -sfx7zC.sfx a.exe * -r
添加所有文件到自释放档案 a.exe 并使用 7zC.sfx Windows 版本的自释放模块。
可以和此选项结合使用的命令
a (
添加) d (删除) u (更新)
v
-si (
stdin 读取数据) 选项
使 7-Zip stdin 中使用数据(标准输入流)
语法
-si{file_name}
{file_name}
为要压缩的数据指定一个将要储存在压缩档案中的名称。如果 file_name 未被指定,数据将被储存而没有名称。
注意:当前版本的 7-Zip 不支持从 stdin 中读取压缩档案。
示例
7z a archive.gz -tgzip -siDoc2.txt [ Doc.txt
使用 Doc2.txt 文件名压缩输入流从文件 Doc.txt 到压缩档案 archive.gz
可以和此选项结合使用的命令
a (
添加) u (更新)
-so (
stdout 写入数据) 选项
使 7-Zip stdout 中使用数据(标准输出流)
语法
-so
示例
7z x archive.gz -so ] Doc.txt
解压缩 archive.gz 输出流并将该输出流写入到 Doc.txt 文件。
7z a dummy -tgzip -so Doc.txt ] archive.gz
压缩 Doc.txt 输出流并将该输出流写入到 archive.gz 压缩档案。
可以和此选项结合使用的命令
a (
添加) e (释放) u (更新) x (完整路径释放)
-t (
设置压缩档案格式) 选项
指定压缩档案格式。
语法
-t{archive_type}
{archive_type}
指定压缩档案格式。它们可以是:zip7zrarcabgzipbzip2tar 或其它格式。而默认值是 7z 格式。
示例
7z a -tzip archive.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 (更新))都可以被分配到下列项目中。
下列表格中显示的是更新命令的动作设置。

示例
7z u c:\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(1 KB1024 字节)MB(1 MB = 1024 KB) GB(1 GB = 1024 MB)。如果您只指定了 {Size}7-zip 将把它视为字。您可以同时指定多个 -v 选项。
示例
7z a a.7z *.txt -v10k -v15k -v2m
创建 a.7z 分卷压缩档案。第一个分卷为 10 KB,第二个为 15 KB,剩下全部为 2 MB
可以和此选项结合使用的命令
a (
添加)
-w (
设置工作目录) 选项
为文件压缩设置临时的工作目录。默认情况下,7-Zip 新建一个压缩档案时,会临时在当前目录创建一个基本压缩档案。然而通过指定此选项,您可以设置基本压缩档案的生成目录,也就是工作目录。当压缩完成时,它将会被重命名为压缩前您所指定的文件名,然后删除在临时目录中的原始压缩档案。
语法
-w[{dir_path}]
{dir_path}   
指定目标文件夹。
如果 [dir_path] 未指定,那么 7-Zip 将使用 Windows 默认的临时目录。
示例
7z a -tzip archive.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 (附加文件) 选项。
示例
7z a -tzip archive.zip *.txt -x!temp.*
添加除 temp.* 文件之外的所有 *.txt 文件到压缩档案 archive.zip。可以和此选项结合使用的命令:
a (
添加) d (删除) e (释放) l (列表) t (测试) u (更新) x (完整路径释放)
其它选项: -r (递归子目录) -i (附加文件)
-y (
全是) 选项
使 7-Zip 执行命令时的大多数提示失效。您可以使用此选项来阻止在 e (释放) x (完整路径释放) 命令中文件覆盖时的提示。
语法        -y        示例
7z x src.zip -y   
src.zip 释放所有文件。所有的覆盖提示将被阻止且所有相同文件名的文件将被覆盖。可以和此选项结合使用的命令:
e (
释放) x (完整路径释放)
其它选项: -ao (覆盖模式)

 

阅读(1713) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~