Para excluir as pastas bin e obj recursivamente, você pode usar o comando:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0 -xr!bin -xr!obj
Alguma idéia de como excluir um caminho wild-card (s) de um comando 7zip da linha de comando?
Estou fazendo algo assim:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0
e gostaria de excluir as pastas \bin\*.*
ou \obj\*.*
encontradas abaixo de "FolderToArchive". Para excluir arquivos, você pode usar o parâmetro -x
. O arquivo de ajuda fornece este exemplo para usar -x
:
7z a -tzip archive.zip *.txt -x!temp.*
Isso é ótimo para excluir um arquivo. Mas, novamente, gostaria de excluir uma pasta especificada pelo caractere curinga. Sob o meu "FolderToArchive" existem várias pastas, nessas pastas podem ou não ser bin\
e obj\
pastas. Eu gostaria de não incluí-los no arquivo.
Eu tentei padrões como:
-x!bin\*
%código%
%código%
%código%
%código%
-x!bin\*.*
Nenhum parece excluir. Isso é simplesmente uma limitação de 7zip?
Para evitar erros, use -r ou -xr com cuidado.
suponha que você tenha diretórios como:
.\path1\path2\bin
.\path1\path2\src
.\path3\path4\path5\bin
.\path3\path4\path5\src
e execute o comando:
7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -xr!bin
o que você tem no arquivo.7z:
.\path2\src
.\path5\src
Ou seja, .\path2\
e .\path5\
tornaram-se a pasta superior no archive.7z e os dois diretórios bin
foram excluídos.
-x só suporta caminho / nome de arquivo relativo para a pasta de topo no arquivo.
Então, se você quiser excluir apenas .\path1\path2\bin
, mas para incluir todos os outros diretórios 'bin', o comando deve ser assim:
7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -x!path2\bin
Eu tentei usar o caminho absoluto em -x, mas nunca consegui.
Atualização:
Existe uma opção -spf
em 7z para o Linux, que funciona com o caminho absoluto.
De acordo com o Marco , o -spf
também está disponível no Windows a partir do 7-zip 15.14
Tags command-line 7-zip