Любая идея, как исключить подстановочный путь (и) из командной строки 7zip команды?
Я делаю что-то вроде этого:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0
и хотел бы исключить любые \bin\*.*
или \obj\*.*
папки, найденные под "FolderToArchive".
Чтобы исключить файлы, вы можете использовать -x
параметр. Файл справки дает этот пример для использования -x
:
7z a -tzip archive.zip *.txt -x!temp.*
Это отлично подходит для исключения файла. Но, опять же, я хотел бы исключить папку, указанную подстановочным знаком. Под моим «FolderToArchive» есть несколько папок, под этими папками могут быть или не быть bin\
и obj\
папки. Я хотел бы не включать их в архив.
Я пробовал такие шаблоны, как
-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*
Кажется, никто не исключает bin\
папку. Это просто ограничение 7zip?
command-line
7-zip
Yoopergeek
источник
источник
-xr0!*.zip
- по крайней мере, я не смогу заставить его работать безr0
.'-x!$RECYCLE.BIN'
чтобы исключить корзину внешнего диска.Чтобы избежать ошибок, используйте -r или -xr осторожно.
Предположим, у вас есть такие каталоги:
и запустите команду:
что вы получили в архиве 7z:
То есть
.\path2\
и.\path5\
стала верхней папкой в archive.7z, и обаbin
каталога были исключены.-x поддерживает только путь / имя файла относительно верхней папки в архиве.
Итак, если вы хотите исключить
.\path1\path2\bin
, но включить все остальные каталоги bin, команда должна выглядеть следующим образом:Я пытался использовать абсолютный путь в -x, но никогда не получалось.
Обновить:
В
-spf
Linux есть опция, которая работает с абсолютным путем.По словам Марко ,
-spf
также доступен на Windows от 7-ZIP 15,14источник
'-x!path2\bin'
чтобы не впасть в замещение оболочки ... (получение вам «команды» гораздо дольше, синтаксический неправильно ...)'-xr!\.foo'