7zip: How to exclude files (not file types) using an exclude list file?

22,110

Solution 1

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

7z a [email protected] 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.

Solution 2

I think you want the -x switch with @

7z a -t7z my.zip * [email protected]

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:
22,110

Related videos on Youtube

oscilatingcretin
Author by

oscilatingcretin

Updated on September 18, 2022

Comments

  • oscilatingcretin
    oscilatingcretin almost 2 years

    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?

  • annunarcist
    annunarcist about 10 years
    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.
  • thomasa88
    thomasa88 almost 9 years
    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)