Я знаю, що ви можете створити текстовий файл, що містить список файлів, а потім сказати 7zip для посилання на цей файл, щоб він міг виключити їх з архіву, але я не можу знайти для цього синтаксис. Може хтось допоможе?
Я знаю, що ви можете створити текстовий файл, що містить список файлів, а потім сказати 7zip для посилання на цей файл, щоб він міг виключити їх з архіву, але я не можу знайти для цього синтаксис. Може хтось допоможе?
Відповіді:
Після кількох годин пошуку я нарешті зрозумів це. Ось синтаксис перемикання:
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
Працює як шарм.
Я думаю, ви хочете, щоб перемикач -x з @
7z a -t7z my.zip * -x@myexclusion.lst
З ретроспективою я зрозумів, що ви, мабуть, мали на увазі, що хочете синтаксису списку. Це повинен бути список, відокремлений новим рядком. Ви можете зіткнутися з проблемою кодування. 7z очікує, що він буде у форматі UTF-8, ви можете це змінити за допомогою перемикача -scs або ви можете сказати блокноту зберегти файл у форматі UTF-8
Якщо ваш список буде дійсно коротким, ви можете мати більше одного -x прапора:
7z a -r CppSourceJBR.zip * .cpp .h -x! Stdafx. -x! targetver.h
BTW під час тестування мені довелося продовжувати видалення .zip-файлу. Наприклад, коли я забув, що, наприклад, targetver.h все ще знаходився в ZIP з останнього запуску.
r
варіант. Це правильний спосіб виключення PNG-файлів рекурсивно в баші (одиничні лапки, щоб зупинити розгортання bash!
і*
):-xr'!*.png'
(редагувати: одинарні лапки замість втечі)