使用 7z 压缩目录中除一个文件或一种文件类型之外的所有内容

问题描述 投票:0回答:3

我想压缩除一个文件之外的所有内容

7z a -tzip files.zip *

这将压缩我当前目录中的所有文件。有没有办法告诉它不压缩一个文件或一种文件类型?

zip cmd 7zip
3个回答
25
投票

根据 7za 命令行帮助,您可以使用 -x 开关来执行此操作:

-x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames

要排除文件 foo.txt,您需要添加:

-x!foo.txt

要排除所有 .html 文件 (*.html),您需要添加:

-x!*.html

您可以添加多个 -x 条目以在一个 zip 命令中排除多个文件名和/或通配符。添加以下内容将排除 foo.txt 和 *.html:

-x!foo.txt -x!*.html

因此,在您的示例中,这会将所有文件添加到 files.zip 中,除了名为“FILENAME”的文件或与 *.extension 通配符匹配的文件:

7z a -tzip files.zip * -x!FILENAME -x!*.extension

11
投票

如果您使用批处理脚本,请不要忘记转义!标记。

7z a -xr^^!*.xml "dest_dir.zip" "Source_dir"

0
投票

对于排除单个文件或通配符条目,命令行选项似乎不起作用。相反,在文本文件 (..\xlist.txt) 中列出要排除的文件和通配符,并在命令行中指定它,如下所示:

7z a -tzip 文件.zip * -xr@..\xlist.txt

使用相对路径指定xlist.txt。

© www.soinside.com 2019 - 2024. All rights reserved.