- 帖子
- 551
- 积分
- 2799
- 技术
- 39
- 捐助
- 0
- 注册时间
- 2011-4-22
|
3楼
发表于 2011-6-8 14:45
| 只看该作者
本帖最后由 applba 于 2011-6-8 14:49 编辑
3、命令行的switch
Syntax
<switch>::= <switch_symbol><switch_characters>[<option>]
<switch_symbol> ::= '/' | '-'
一个switch 由一个switch引导符号(-或/)和其后的名字组成。
有些switch的名字后面还有一个参数 。
Switch的名字不区分大小写,但参数需要区分。
不允许在switch的描述中出现空格或者tab。
Switch 可以用在命令行的任意位置。
3.0 --
--(Stop switches parsing) switch
停止命令行中--后的switch解析。
这允许7-zip可以处理以-开头的文件名。
语法
--
例子
7z t -- -ArchiveName.7z
测试名字为 -ArchiveName.7z 文件。
3.1 -r –i –x
-r (Recurse subdirectories) switch
指定命令行处理通配符和文件名的方式。
Syntax
-r[- | 0]
Switch Description
-r 启用递归子目录
-r- 禁用递归子目录,所有命令的默认值。
-r0 启用递归子目录,但只对通配符有效。
请注意 如果没有指定通配或具体的文件名称,总是会发生递归。
例子1:使用了通配或者具体的文件名时,一般需要使用递归。
7z l archive.zip *.doc -r-
只列出压缩包根目录下的所有.doc文件,不会列出子目录中的文件。
7z a -tzip archive.zip -r src\*.cpp src\*.h
添加 src目录及其子目录下的所有.cpp文件和.h文件到压缩包。
例子2:没有指定通配或具体的文件名时、不需要主动使用递归。
7z a archive.7z folder1\
添加folder1及其子目录中的所有文件到压缩包,此时不需要递归。
7z x archive.7z –oc:\dir1
解压所有文件到c:\dir1并按目录结构层次存放,此时不需要递归。
例子3:对文件夹也可以使用递归。
7z a archive.7z -r folder2\
递归所有名为folder2 的子目录,并添加到压缩包。
7z x archive.7z –r dir1\
递归所有名字为dir1的目录,然后解压他们到当前目录。
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), l (List), t (Test), u (Update), x (Extract with full paths)
-i (Include filenames) switch
指定处理过程中额外需要包含的文件。。
支持同时使用多个-i。
Syntax
-i[<recurse_type>]<file_ref>
<recurse_type> ::= r[- | 0]
<file_ref> ::= @{listfile} | !{wildcard}
Parameters
<recurse_type>
指定通配符和文件名称在这个开关里面怎样被使用。
如果这个选项没有提供,-r (Recurse) switch指定的默认全局值将被使用。
<recurse_type> ::= r[- | 0]
<file_ref>
指定要被处理的文件名称、通配名称或清单文件。
<file_ref> ::= @{listfile} | !{wildcard}
例子:
7z a -tzip src.zip *.txt -ir!DIR1\*.cpp
添加当前目录下的.txt(不递归) 和dir1目录(及其子目录)下所有的.cpp(递归)到压缩包。
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), l (List), t (Test), u (Update), x (Extract with full paths)
-x (Exclude filenames) switch
指定处理过程中需要排除的文件。
支持同时使用多个-x。
Syntax
-x[<recurse_type>]<file_ref>
<recurse_type> ::= r[- | 0]
<file_ref> ::= @{listfile} | !{wildcard}
Examples
7z a -tzip archive.zip *.txt -x!temp.*
添加当前目录下的*.txt 文件(不递归)到压缩包, 除了temp.* 文件。
.
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), l (List), t (Test), u (Update), x (Extract with full paths)
3.2 -ai -ax –an
-ai (Include archive filenames) switch
指定需要额外包含的压缩包。
支持同时使用多个-ai。
Syntax
-ai[<recurse_type>]<file_ref>
<recurse_type> ::= r[- | 0]
<file_ref> ::= @{listfile} | !{wildcard}
Parameters
参见-r和-i。
例子
7z t -an -air!*.7z
测试当前目录及其子目录下的所有.7z压缩包。
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), l (List), t (Test), u (Update), x (Extract with full paths)
-ax (Exclude archive filenames) switch
指定需要排除的压缩包文件。
支持同时使用多个-ax
Syntax
-ax[<recurse_type>]<file_ref>
<recurse_type> ::= r[- | 0]
<file_ref> ::= @{listfile} | !{wildcard}
Parameters
参见-r和-x。
例子:
7z t -an -ai!*.7z -ax!a*.7z
测试当前目录下所有的7z文件(不递归),除了以a开头的7z文件。
可以和此switch一起使用的command
e (Extract), l (List), t (Test), x (Extract with full paths)
-an (Disable parsing of archive_name) switch
禁止命令行解析压缩包名称字段,-an必须和-ai一起使用。
如果你使用-ai来指定一个压缩包的清单,因此你需要禁止对压缩包名称的解析。
Syntax
-an
例子
7z t -an -ai!*.7z -ax!a*.7z
tests all *.7z archives, except a*.7z archives.
可以和此switch一起使用的command
e (Extract), l (List), t (Test), x (Extract with full paths)
3.3 -w -p -t -v
-w (set Working directory) switch
为临时base archive file设定工作目录。
默认地,7-Zip 在旧的base archive file的同目录创建一个新的base archive file 。 通过指定这个switch, 你可以设置临时base archive file 的被创建的目录。临时base archive file 创建完成后,会被复制并替换原始的base archive file,然后被删除。
Syntax
-w[{dir_path}]
{dir_path}
指定目录的路径。路径中的反斜杠不是必须的。
如果<dir_path> 没有被指定, 7-Zip 将使用系统临时目录。
Example
7z a -tzip archive.zip *.cpp -wc:\temp
此命令将在c:\temp创建临时压缩包。
可以和此switch一起使用的command
a (Add), d (Delete), u (Update)
-p (set Password) switch
为压缩包指定密码。
Syntax
-p{password}
{password}
要指定的密码。
Examples
7z a archive.7z -psecret -mhe *.txt
使用密码secret压缩.txt文件到压缩包。
同时文件名也会被加密(-mhe switch)。
7z x archive.zip -psecret
使用密码secret解压文件到当前目录。
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), t (Test), u (Update), x (Extract with full paths)
-t (set Type of archive) switch
指定压缩包的类型。
一般是在压缩包扩展名和类型不一致的时候才需要使用。
Syntax
-t{archive_type}
{archive_type}
指定类型 可以是: *, 7z, split, zip, gzip, bzip2, tar, ... ,或者他们的组合,如mbr.vhd。
如果 -t{archive_type} switch没有被指定, 7-Zip 使用压缩包的扩展名来来侦测他们的类型。
如果创建一个没有扩展名的压缩包, -t{archive_type} switch 没有被指定, 7-Zip 将创建 .7z格式的压缩包。
当你解压某种类型的压缩包(包含另一没有经过压缩的压缩包,如MBR in VHD),7-Zip 会一步就打开两层。
如果你只想解压顶层,使用 -t* switch。
Note: gzip or bzip2 格式只支持每个压缩包一个文件。
如果你想压缩一个以上的文件到这些格式,先创建一个tar压缩包然后用你选择的格式压缩它。
例子:
7z a -tzip archive.bak *.txt
添加当前目录下的所有.txt文件到压缩包,此压缩包的扩展名为bak。
7z t -t7z.split archive.7z.001
测试archive.7z.001。它还会识别到那是一个多卷的7z压缩包。
7z x -tiso archive.iso
以iso文件格式解压压缩包。
7z x -tudf archive.iso
以udf格式解压压缩包。
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), l (List), t (Test), u (Update), x (Extract with full paths)
-v (Create Volumes) switch
指定分卷大小。
可以同时使用多个-v。
Syntax
-v{Size}[b | k | m | g]
{Size}[b | k | m | g]
指定分卷大小的单位,字节,千字节,兆字节,G字节
如过你只指定 {Size}, 7-zip 将以字节为单位。
It's possible to specify several -v switches.
NOTE:
在压缩包完成之前,不要使用分卷(和复制分卷)。
7-Zip会在压缩包的操作结束时更新任何分卷(包括第一个分卷)。
例子
7z a a.7z *.txt -v10k -v15k -v2m
创建多卷7z压缩包,第一个分卷,10 KB第二个是15K,第三个是2 MB。
可以和此switch一起使用的command
a (Add)
3.4 –o –ao –y
-o (set Output directory) switch
指定解压时文件的存放的目录。
只能和解压命令(e和x)一起使用。
Syntax
-o{dir_path}
{dir_path}
这是目标目录的路径,末尾的反斜杠不是必须的。
如果在 {dir_path}使用了*, 7-Zip 会替换*为要所包的名称。
例子
7z x archive.zip -oc:\Doc
解压所有文件到 c:\Doc directory.
7z x *.zip -o*
解压所有的zip文件到以他们名字命名的子目录。
可以和此switch一起使用的command
e (Extract), x (Extract with full paths)
-ao (Overwrite mode) switch
指定解压期间的重写模式,怎么处理已经存在的文件。
Syntax
-ao[a | s | t | u ]
Switch Description
-aoa 不提示就重写所有已经存在的文件。
-aos 跳过解压已经存在的文件。
-aou 自动重命名解压中的文件(例如name.txt 重命名为 name_1.txt).
-aot 自动重命名已经存在的文件(例如name.txt 重命名为 name_1.txt).
Examples
7z x test.zip -aoa
解压文件并没有任何提示就重写已经存在的文件。
可以和此switch一起使用的command
e (Extract), x (Extract with full paths)
-y (assume Yes on all queries) switch
禁止绝大多数7-zip执行期间的普通询问。
你可以使用此-y抑制e (Extract) 和x (Extract with full paths) 的重写询问。
Syntax
-y
Examples
7z x src.zip -y
所有的重写询问都会被抑制,同时磁盘上的所有同名文件会被重写。
可以和此switch一起使用的command
e (Extract), x (Extract with full paths)
3.5 –scc –scs –si -so
-scc (Set charset for console input/output) switch
为控制台输入输出指定编码字符集。
Syntax
-scc{UTF-8 | WIN | DOS}
默认的字符集是DOS。
UTF-8
Unicode UTF-8 character set.
WIN
Default character set of Windows.
DOS
DOS (OEM) character set of Windows.
例子
7z l archive.7z -sccUTF-8
以UTF-8编码字符集显示压缩包内的文件。
-scs (Set charset for list files) switch
为清单文件指定编码字符集。
Syntax
-scs{UTF-8 | WIN | DOS}
默认的字符集是UTF-8
UTF-8
Unicode UTF-8 character set.
WIN
Default character set of Windows.
DOS
Default DOS (OEM) character set of Windows.
Example
7z a archive.7z @listfile.txt -scsWIN
指定清单文件的编码字符集为win。
可以和此switch一起使用的command
a (Add), u (Update)
-si (read data from stdin) switch
使7-Zip从stdin (standard input)读取数据,而不是从磁盘文件。
Syntax
-si{file_name}
{file_name}
指定压缩包内 被压缩数据存放的文件名。
如果不指定文件名,压缩的数据将会被存储,但没有名字。I
Note:
当前版本的7-zip支持从stdin进行压缩包的读取, 但是只支持 xz, lzma, tar, gzip and bzip2 压缩包。
例子:
7z a archive.gz -tgzip -siDoc2.txt < Doc.txt
压缩来自doc.txt的输入流,压缩后的数据流存放在Doc2.txt。
7z x 7z905.tar.gz -so | 7z x -si -ttar
压缩7z905.tar.gz文件到tar格式。
可以和此switch一起使用的command
a (Add), e (Extract), u (Update), x (Extract with full paths)
-so (write data to stdout) switch
使7-Zip 把输出数据写到stdout (standard output stream).
Syntax
-so
例子:
7z x archive.gz -so > Doc.txt
解压压缩包到标准输出,同时标准输出又被重定向到Doc.txt文件。
7z a dummy -tgzip -so Doc.txt > archive.gz
压缩 Doc.txt到标准输出,随后又被重定向到archive.gz文件。
可以和此switch一起使用的command
a (Add), e (Extract), u (Update), x (Extract with full paths)
3.6 –slp –slt –ssc
-slp (Set Large Pages mode) switch
设置 Large Pages 模式。
Syntax
-slp[-]
Switch Description
-slp 启用 Large Pages 模式。
-slp- 禁用 Large Pages 模式,这是所用命令的默认值。
Large Pages 模式能提高压缩速度。 但是,在开始压缩的时候会有一个暂停,此时 7-Zip 在内存中分配large pages。 如果7-Zip 无法分配 large pages,它将分配普通的 small pages。同时, 如果7-zip使用large pages ,Windows 任务管理并不显示该程序的真实内存使用。这一特征只在 Windows 2003 / XP x64上有效。 另外它还需要当前系统的管理员权限。这一特征的推荐内存大小是1G或者以上。要安装此特征,你必须运行7-Zip 文件管理器最少一次,关闭后重启系统。
如果你使用-slp 模式,在压缩开始时你的系统可能会挂起几秒钟。
因此,不推荐使用-slp模式处理较小的数据集(小于100MB)。
例子
7z a archive.7z -slp a.iso
使用Large Pages模式压缩a.iso。
-slt (Show technical information) switch
为l (List) command设置专业模式
Syntax
-slt
Example
7z l -slt archive.7z
显示压缩包内文件的详细技术信息。
可以和此switch一起使用的command
l (List)
-ssc (Set Sensitive Case mode) switch
为文件名称设置大小写敏感模式。
Syntax
-scs[-]
Switch Description
-ssc 设置大小写敏感模式,Posix/Linux系统的默认值。
-ssc- 设置大小写不敏感模式,windows系统的默认值。.
例子:
7z a archive.7z A*.txt -ssc -r
压缩所有A开头的文件,但是不会压缩a*.txt。
可以和此switch一起使用的command
a (Add), d (Delete), e (Extract), l (List), t (Test), u (Update), x (Extract with full paths)
-ssw (Compress files open for writing) switch
压缩被其他程序打开的文件。
如果这个switch 没有设置,7-zip 不会包含这个文件到压缩包。
Syntax
-ssw
例子
7z a archive.7z -ssw *.txt
压缩当前目录下的所有*.txt文件,包括被其他程序打开的。
可以和此switch一起使用的command
a (Add), u (Update) |
|