7zip:如何使用排除列表文件排除文件(不是文件类型)?


11

我知道您可以创建一个包含文件列表的文本文件,然后告诉7zip引用此文件,以便它可以将其从存档中排除,但是我找不到该文件的语法。有人可以帮忙吗?

Answers:


9

经过几个小时的搜索,我终于找到答案了。这是开关语法:

7z a -xr@exclude.txt backup.7z c:\whatever\*

请注意,-xr而不要注意-x。该r指示递归,因此它可以匹配深文件夹层次结构中排除的文件。另外,文本文件的格式可以至少为ANSI或UTF-8。

至于包含这些文件的文件,如OldWolf所说,这是一个列表,用回车符分隔,如下所示:

Telerik.Reporting.dll
Telerik.Reporting.Service.dll
Telerik.ReportViewer.WebForms.dll
Telerik.Web.Design.dll
Telerik.Web.UI.dll
*.txt

奇迹般有效。


1
谢谢!我试图用通配符选项排除,结果发现我缺少该r选项。这是在bash中递归排除PNG文件的正确方法(单引号可阻止bash扩展!*):( -xr'!*.png' 编辑:单引号而不是转义)
thomasa88

4

我认为您想要使用@的-x开关

7z a -t7z my.zip * -x@myexclusion.lst

回想起来,我意识到您可能意味着您想要列表文件的语法。它应该是换行符分隔的列表。您可能会遇到编码问题。7z希望它采用UTF-8格式,您可以使用-scs开关覆盖它,也可以告诉记事本以UTF-8格式保存文件。


2
感谢您提供有关文件编码的提醒。对于为什么不遵守我的排除清单,我一直困惑不解。我使用默认为Unicode的Out-File在PowerShell脚本中生成文件。将其更改为输出UTF8,突然一切正常。
WileCau 2014年

0

如果您的列表确实很短,则可以有多个-x标志:

7z a -r CppSourceJBR.zip * .cpp .h -x!stdafx。-x!targetver.h

顺便说一句,在测试时,我不得不继续删除.zip文件。当我忘记了这一点时,例如targetver.h仍在上次运行的ZIP中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.