7z命令⾏参数详解--python暴破压缩⽂件命令必备7z.exe在CMD窗⼝的使⽤说明如下:
7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06
Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...]
[<@>]
<Commands>
a: Add files to archive
b: Benchmark
d: Delete files from archive
e: Extract files from archive (without using directory names)
l: List contents of archive
t: Test integrity of archive
u: Update files to archive
x: eXtract files with full paths
<Switches>
-ai[r[-|0]]{@listfile|!wildcard}: Include archives
-ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
-bd: Disable percentage indicator
-i[r[-|0]]{@listfile|!wildcard}: Include filenames
-m{Parameters}: set compression Method
-o{Directory}: set Output directory
-p{Password}: set Password
-r[-|0]: Recurse subdirectories
-
scs{UTF-8 | WIN | DOS}: set charset for list files
-sfx[{name}]: Create SFX archive
-si[{name}]: read data from stdin
-slt: show technical information for l (List) command
-so: write data to stdout
-ssc[-]: set sensitive case mode
-ssw: compress shared files
-t{Type}: Set type of archive
-v{Size}[b|k|m|g]: Create volumes
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
-w[{path}]: assign Work directory. Empty path means a temporary directory
-
x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
-y: assume Yes on all queries
中⽂使⽤说明如下:
语法
7z <;命令⾏> [<;选项>...] <;基本档案名称> [<;参数变量>...]
7z <command> [<switch>...] <base_archive_name> [<arguments>...]* g8 T1 {- l2 e) P% T' V; A
<;参数变量> ::= <;选项> | <;通配符> | <⽂件名> | <⽂件列表>
<;选项>::= <;选项标记><;选项字符>[<;选项>]
<;选项标记> ::= '/' | '-'
<⽂件列表> ::= @{⽂件名}( @4 _; F r6 j. t+ a5 @
<arguments> ::= <switch> | <wildcard> | <filename> | <list_file>
<switch>::= <switch_symbol><switch_characters>[<option>]
<switch_symbol> ::= '/' | '-'
<list_file> ::= @{filename}
<list_file> ::= @{filename}
在⽅括号内的表达式(“[” 和 “]”之间的字符)是可选的。' ?2 k0 k/ m* f. Q$ c4 h
在书名号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式(⽽且要去掉括号)。
表达式
expression1 | expression2 | ... | expressionN* R- s: |- P/ n& m9 C
命令⾏ 及 选项 使⽤⼤写或⼩写字母都可以。
⾸个命令⾏必须是⽆选项的参数变量。
选项及其它⽂件名的输⼊顺序可以打乱。
带有空格的通配符或⽂件名必须加上引号:
"Dir\Program files\*"+ r+ u2 k b' Z& U. n
Dir\"Program files"\*. M R V3 S/ s
通配符是⼀个键盘字符,例如星号(*)或问号(?),当执⾏添加⽂件、释放⽂件、选定⽂件、删除⽂件等操作时,您可以使⽤它来代表⼀个或多个字符。当您不知道真正字符或者不想键⼊完整名称时,常常使⽤通配符代替⼀个或多个字符。
7-Zip ⽀持和 Windows 相类似的通配符:
“*”可以使⽤星号代替零个或多个字符。
“?”可以⽤问号代替名称中的单个字符。
7-Zip 使⽤的并不是系统处理通配符的默认⽅法,因⽽ 7-Zip 不⽀持其它通配符规则,在系统中 *.* 相当于所有⽂件。⽽ 7-Zip 会将其视为任何扩展名的全部⽂件。所以,要处理所有⽂件您必须使⽤ * 通配符。
⽰例:
*.txt 这样会查(添加、选定……)所有扩展名是“.txt”的⽂件 / z9 x0 }' d, B, s# z
a* 这样会查(添加、选定……)所有第⼆个字母为“a”的⽂件 / f+ ^8 N7 S% b. b' Q
*1* 这样会查(添加、选定……)所有包含“1”的⽂件 3 W# Q" f C* h E6 n
*.*.* 这样会查(添加、选定……)所有包含“.”的双扩展名⽂件
如果在命令⾏中没有⽂件名,系统将会使⽤默认通配符“*”。* K. J# R7 u) w7 n3 A6 ?
档案⽂件中通配符及⽂件名的使⽤限制:
通配符及⽂件名不能包括系统盘符或⽹址。每个通配符及⽂件名路径将被视为从盘符到当前⽬录的完整路径/从压缩档案的根⽬录算起的完整路径。换句话说,路径的开始部分(在⾸个斜线(“\”)之前的字符)必须是某个名称或通配符。 1 [% e: w/ V/ g, l" t0 N
通配符及⽂件名不能以斜线(“\”)结尾。
通配符只可以在完整路径的最后⼀部分中出现。 ' M) Q' ~9 v2 O; m2 I9 _$ G2 D, U" b
⽰例:
Dir1\*.cpp 正确
c:\Dir1\*.cpp 错误:路径中不能包括盘符
Dir1\Dir2\g?.txt 正确 ; i7 Q+ P) e2 F8 g
Dir1\D? 错误:只有在以路径的最后⼀部分才能使⽤通配符
⽂件列表: l Z$ }; P4 O
您可以使⽤⽂件列表来对要操作的⽂件进⾏批量操作。在⽂件中的⽂件名必须⽤空格或另起⼀⾏隔开。(如使⽤空格格开,每⼀个⽂件必须加引号)。
7-Zip 命令⾏⽀持多个⽂件列表同时操作。2 Y+ k2 G9 |2 g: p. x2 M' Z
举个例⼦,这⾥有⼀个⽂件列表“”包含下列内容:" I! Z) }. C7 k/ H4 g; u' @+ Q
"My programs\*.cpp"5 v; @* F) U5 ]$ k3 H6 J! b* N
Src\*.cpp
那么我们可以输⼊命令:
7z a -tzip archive.zip @
将“My programs”及“Src”⽬录中所有扩展名为“cpp”的⽂件添加到压缩档案“archive.zip”中。
命令⾏
命令⾏的命令不分⼤⼩写。
更多有关命令⾏的详细内容请参阅 语法。
命令要点参考
命令 作⽤说明
a 添加 . M% Z1 A/ G8 y: S9 d* c
d 删除 : j9 _ _2 ~$ W, W2 m: U
e 释放 - Y7 {! I _( K$ y
l 列表 4 w& j5 K X4 }+ Y# A) d* k: S
t 测试 . h: w& C4 ~- P* o+ @
t 测试 . h: w& C4 ~- P* o+ @
u 更新
x 完整路径释放
& `- O( ] M. T' k x0 `
命令⾏选项/ }1 o6 h9 v9 B2 V9 |9 q' R. y
语法 V* Y, `+ p( K5 b
<;选项>::= <;选项_符号><;选项_字符>[<;选项>]
<;选项_符号> ::= '/' | '-'
<switch>::= <switch_symbol><switch_characters>[<option>]
<switch_symbol> ::= '/' | '-'
在命令⾏中,⼀个完整的选项由指定的选项、连字符(-)或斜线(/)组成,⽽且选项的符号不能使⽤缩写。, q$ P! D- o" H b" w/ Y3 _# D
选项名称不区分⼤⼩写。⽽⼀部分选项会包括参数变量,它们是需要区分⼤⼩写的。
选项可以使⽤在命令⾏中的任何位置。##
()先给出⼀个压缩⽂件的例⼦:
7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
添加 *.exe 及 *.dll ⽂件到固实压缩档案 archive.7z。使⽤ LZMA 压缩算法、2 MB 字典⼤⼩及 BCJ 转换器。压缩将开启多线程优化(如果可⽤)。
-ms 默认设置固实模式。在创建固实压缩档案模式中,它把压缩档案中的所有⽂件都当成⼀个连续数据流来看待。通常情况下,固实压缩可增加压缩⽐,特别是在添加⼤量⼩⽂件的时候
-mmt 默认开启多线程模式。
以上两条倒是可以理解,但是“-m0=BCJ -m1=LZMA:d=21 ”⼜该如何解释?
按照给出的中⽂的⽂档说明:
-m0=BCJ -- 第⼀个备选的压缩算法为BCJ
-m1=LZMA:d=21 -- 第⼆个备选的压缩算法为LZMA,指定字典⼤⼩为默认的21(2MB的1次⽅)2MB。
如果:想要使⽤最⼤化压缩,可以使⽤下⾯的参数选项:
7z a -t7z DriverTest_1.7z "I:\t\t1\*" -mx=9 -ms=200m -mf -mhc -mhcf -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt -r
-t7z -- 压缩⽂件的格式为7z
-mx=9 -ms=200m -mf -mhc -mhcf -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt
-- 指定压缩算法选项
-mx=9 -- 设置压缩等级为极限压缩(默认为:LZMA 最⼤算法、32 MB 字典⼤⼩、BT4b Match finder、单词⼤⼩为 64、BCJ2 过滤器)
-ms=200m -- 开启固实模式,设置固实数据流⼤⼩为200MB。
-mf -- 开启可执⾏⽂件压缩过滤器。
-mhc -- 开启档案⽂件头压缩。
-mhcf -- 开启档案⽂件头完全压缩。我所使⽤的7z版本为4.42>2.30。
-m0=LZMA:a=2:d=25:mf=bt4b:fb=64
-- 第⼀个备选压缩算法为LZMA,压缩等级为最⼤压缩,LZMA算法使⽤的字典⼤⼩为25(2MB的5次⽅)32MB,算法的匹配器为bt4b(所需要内存为d×9.5 + 34 MB),压缩算法的紧凑字节为最⼤模式的64字节。
-mmt -- 开启多线程模式。
-r -- 递归到所有的⼦⽬录。
7z命令解压⽂件的例⼦:解压File.7z⽂件到⽬录Mydir。
7z x "d:\File.7z" -y -aos -o"d:\Mydir"
参数说明:
x:完整路径下解压⽂件
-y:所有确认选项都默认为是(即不出现确认提⽰)
-aos:跳过已存在的⽂件
-o:设置输出⽬录python中文文档
关于内存的使⽤:
⼀般来说,WindowsXP⾄少使⽤80~160MB的内存,为了保证系统的运⾏正常,还要留够32MB的剩余物理内存。
所以如果是512MB的内存,那么7z压缩所使⽤的内存为(512-32-160)320MB,使⽤bt4b(d*9.5+34MB),所以d=32MB。
如果是256MB的内存,那么7z压缩所使⽤的内存为(256-32-120)104MB,使⽤bt4b(d*9.5+34MB),所以d=8MB。
由此可见,在WindowsXP的图形界⾯下要想得到更⼤的压缩⽐,或者扩⼤物理内存的容量,或者可以
采⽤在DOS下运⾏32位程序的⽅法;否则⽆论你的虚拟内存或者系统的磁盘缓存设置得再⼤,只能看见硬盘灯狂闪得交换页⾯⽂件。
通常情况下,较⼤的字典⽂件能提供较⾼的压缩⽐。但是在压缩和解压缩的时候会⽐较慢⽽且需要较多的物理内存:压缩时所使⽤的物理内存约为字典⽂件的10倍,解压缩时所使⽤的物理内存约等于字典⽂件⼤⼩。
语法格式:(详细情况见7-zip帮助⽂件,看得头晕可以跳过,⽤到再学)
7z <command> [<switch>...] <base_archive_name> [<arguments>...]
<的每个命令都有不同的参数<switch>,请看帮助⽂件
<base_archive_name>为压缩包名称
<arguments>为⽂件名称,⽀持通配符或⽂件列表
a: 添加⽂件的压缩包,或者创建新的压缩包。
d: 从压缩包中删除⽂件。
e: 从压缩包中提取。
t: 测试压缩包的是否出错。
u: 更新压缩包中的⽂件。
其中,7z是⾄命令⾏压缩解压程序7z.exe,<command>是7z.exe包含的命令,列举如下:
a: Adds files to archive. 添加⾄压缩包
a命令可⽤参数:
-i (Include)
-m (Method)
-p (Set Password)
-r (Recurse)
-sfx (create SFX)
-
si (use StdIn)
-so (use StdOut)
-ssw (Compress shared files)
-t (Type of archive)
-u (Update)
-v (Volumes)
-w (Working Dir)
-x (Exclude)
b: Benchmark
d: Deletes files from archive. 从压缩包中删除⽂件
d命令可⽤参数:
-
i (Include)
-m (Method)
-p (Set Password)
-r (Recurse)
-u (Update)
-w (Working Dir)
-x (Exclude)
e: Extract解压⽂件⾄当前⽬录或指定⽬录
e命令可⽤参数:
-ai (Include archives)
-an (Disable parsing of archive_name)
-
ao (Overwrite mode)
-ax (Exclude archives)
-i (Include)
-o (Set Output Directory)
-p (Set Password)
-r (Recurse)
-so (use StdOut)
-x (Exclude)
-y (Assume Yes on all queries)
l: Lists contents of archive.
t: Test
u: Update
x: eXtract with full paths⽤⽂件的完整路径解压⾄当前⽬录或指定⽬录
x命令可⽤参数:
-ai (Include archives)
-an (Disable parsing of archive_name)
-ao (Overwrite mode)
-ax (Exclude archives)
-i (Include)
-o (Set Output Directory)
-p (Set Password)
-r (Recurse)
-
so (use StdOut)
-x (Exclude)
-y (Assume Yes on all queries)
-m (Set compression Method) switch
Specifies the compression method.
⽤7-ZIP实现批处理 命令⾏压缩和解压功能
编辑⼀个.bat⽂件;每⾏这样写,就可以连续压制多个⽬录了
7z a -mx9 -md64m -mfb=273 -slp -ssw -v1024m -mmt=2 -r
{路径及7z档名} {路径及要压缩的⽂件名及路径 可以空格填多个}
例⼦:建议以成对双引号来包压缩档名和路径名
7z a -mx9 -md64m -mfb=273 -slp -ssw -v1024m "game" "d:\game\*.*"把d:\game\ 以ultra模式 64m字典fb273 每分卷1024m模式压缩
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论