Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I know you can create a text file containing a list of files and then tell 7zip to reference this file so that it can exclude them from the archive, but I cannot find the syntax for that. Can someone help?

share|improve this question
up vote 7 down vote accepted

After a few hours of searching, I finally figured it out. Here's the switch syntax:

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

Notice -xr instead of -x. The r indicates recursive so it can match excluded files in deep folder hierarchies. Also, the format of the text file can be at least ANSI or UTF-8.

As for the file containing the files, as OldWolf said, it's a list separated by carriage returns like this:

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

Works like a charm.

share|improve this answer
    
Thanks! I was trying to do exclude with the wildcard option and it turns out I was missing the r option. This is the correct way to exclude PNG files recursively in bash (single quotes to stop bash from expanding ! and *): -xr'!*.png' (edit: single quotes instead of escape) – thomasa88 Jul 27 '15 at 8:48

I think you want the -x switch with @

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

In retrospect, I realized you may have meant you wanted the syntax for the listfile. It should be a newline separated list. You may be running into an encoding issue. 7z expects it to be in UTF-8 format, you can override that with the -scs switch or you can tell notepad to save the file in UTF-8 format

share|improve this answer
    
Thanks for the reminder about file encoding. I have been puzzling for hours as to why my exclusion list was not being obeyed. I produce the file in a PowerShell script using Out-File which defaults to Unicode. Changing it to output UTF8 and suddenly everything just works. – WileCau Apr 27 '14 at 12:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .