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?
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?
Odpowiedzi:
Po kilku godzinach poszukiwań w końcu to rozgryzłem. Oto składnia przełącznika:
7z a -xr@exclude.txt backup.7z c:\whatever\*
Uwaga -xr
zamiast -x
. r
Wskazuje 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.
Myślę, że chcesz przełącznik -x z @
7z a -t7z my.zip * -x@myexclusion.lst
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
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.
r
opcji. 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)