7zip: Jak wykluczyć pliki (nie typy plików) za pomocą pliku listy wykluczeń?

11

Wiem, że możesz utworzyć plik tekstowy zawierający listę plików, a następnie powiedzieć 7zip, aby odwoływał się do tego pliku, aby mógł wykluczyć je z archiwum, ale nie mogę znaleźć dla niego składni. Czy ktoś może pomóc?

kretyna oscylacyjna
źródło

Odpowiedzi:

9

Po kilku godzinach poszukiwań w końcu to rozgryzłem. Oto składnia przełącznika:

7z a [email protected] backup.7z c:\whatever\*

Uwaga -xrzamiast -x. rWskazuje rekurencyjne więc można go dopasować wyłączonych plików w głębokich hierarchii folderów. Ponadto format pliku tekstowego może wynosić co najmniej ANSI lub UTF-8.

Jeśli chodzi o plik zawierający pliki, jak powiedział OldWolf, jest to lista oddzielona znakami karetki:

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

Działa jak marzenie.

kretyna oscylacyjna
źródło
1
Dzięki! Próbowałem wykluczyć opcję wieloznaczną i okazało się, że nie miałem tej ropcji. Jest to właściwy sposób rekurencyjnego wykluczania plików PNG w bash (pojedyncze cudzysłowy, aby zatrzymać rozwijanie bash !i *): -xr'!*.png' (edytuj: pojedyncze cudzysłowy zamiast escape)
thomasa88
4

Myślę, że chcesz przełącznik -x z @

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

Z perspektywy czasu zdałem sobie sprawę, że mogłeś powiedzieć, że chcesz składni pliku listy. Powinna to być lista rozdzielona znakiem nowej linii. Być może masz problem z kodowaniem. 7z oczekuje, że będzie w formacie UTF-8, możesz to zmienić za pomocą przełącznika -scs lub możesz nakazać notatnikowi zapisanie pliku w formacie UTF-8

OldWolf
źródło
2
Dziękujemy za przypomnienie o kodowaniu plików. Godzinami zastanawiam się, dlaczego moja lista wykluczeń nie była przestrzegana. Plik tworzę w skrypcie PowerShell przy użyciu Out-File, który domyślnie ma Unicode. Zmieniając go na wyjście UTF8 i nagle wszystko po prostu działa.
WileCau
0

Jeśli twoja lista będzie naprawdę krótka, możesz mieć więcej niż jedną flagę -x:

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

BTW podczas testów musiałem nadal usuwać plik .zip. Kiedy o tym zapomniałem, na przykład plik docelowy.h był nadal w archiwum ZIP od ostatniego uruchomienia.

jbr
źródło