7-ZIP 命令行

来源:互联网 发布:单片机的作用是什么 编辑:程序博客网 时间:2024/06/05 16:28

7-ZIP 命令行 
语法 

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 完整路径释放 


命令行选项 
语法 

<选项>::= <选项_符号><选项_字符>[<选项>] 
<选项_符号> ::= '/' | '-' 

&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 全是 
现在大家都用WinRAR,不知道听说过7zip的朋友多不多。7zip是一个开源的压缩软件,非常小巧,提供的功能和WinRAR差不多,但支持的格式几乎比后者多一倍。根据我的使用经验,其7z压缩格式的压缩速度及压缩比也领先于WinRAR(WinRAR亦可识别7z格式,故不必担心兼容性问题)。另一点重要的是,7z完全开源,包括压缩算法,而且还可以方便地使用它提供的库,在自己的程序中集成压缩功能。 
这次继续研究常用工具的命令行用法。7zip的核心程序是7z.exe,命令行格式为:7z <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>]。 
command 为操作指令,如下: 
a 添加到压缩文件 
b 基准测试,测试7z当前性能 
d 从压缩文件中删除 
e 从压缩文件中解压缩,但不包含目录结构(即所有各级文件都解压到一个目录里) 
l 列出压缩文件的内容 
t 测试压缩文件 
u 更新文件到压缩文件 
x 从压缩文件中解压缩,包含目录结构 

可见,最常用的指令是a, l和x. 
具体使用,举几个例子就明白了: 

压缩a.txt和b.txt到c.7z: 
7z a c.7z a.txt b.txt (命令a后的第一个为目标压缩文档名,然后是文件列表) 

压缩a.txt和b.txt到D:/Program Files/c.7z: 
7z a D:/"Program Files"/c.7z a.txt b.txt (目录名包含空格,用引号) 

列出c.7z的内容: 
7z l c.7z 

解压缩c.7z到E:/Program Files: 
7z x c.7z -oE:/"Program Files" (-o表示输出目录,其与目录路径之间没有空格) 
这样解压包含下级目录名,但不会在E:/Program Files下新建一个c文件夹,如果需要,就把输出目录设为E:/Program Files/c,这样会自动创建文件夹c。 

如果要生成 zip压缩包,可以直接将目标压缩包名设为c.zip,则它会自动使用zip算法压缩。 

原创粉丝点击