Alguma idéia de como excluir um caminho curinga de um comando 7zip da linha de comando?
Estou fazendo algo parecido com isto:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0
e gostaria de excluir qualquer \bin\*.*
ou \obj\*.*
pastas encontradas embaixo "FolderToArchive".
Para excluir arquivos, você pode usar o -x
parâmetro 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, eu gostaria de excluir uma pasta especificada com curinga. Sob a minha "FolderToArchive" existem várias pastas, nessas pastas não podem ou não ser bin\
e obj\
pastas. Gostaria de não incluí-los no arquivo.
Eu tentei padrões como
-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*
Nenhum parece excluir a bin\
pasta. Isso é simplesmente uma limitação do 7zip?
fonte
-xr0!*.zip
- pelo menos eu não poderia fazê-lo funcionar sem or0
.'-x!$RECYCLE.BIN'
para excluir a Lixeira de uma unidade externa.Para evitar erros, use -r ou -xr com cuidado.
suponha que você tenha diretórios como:
e execute o comando:
o que você conseguiu em archive.7z:
Ou seja, o
.\path2\
e.\path5\
tornou-se a pasta superior em archive.7z, e ambos osbin
diretórios foram excluídos.-x suporta apenas caminho / nome do arquivo em relação à pasta superior do arquivo morto.
Portanto, se você deseja excluir apenas
.\path1\path2\bin
, mas incluir todos os outros diretórios 'bin', o comando deve ser assim:Tentei usar o caminho absoluto em -x, mas nunca obtive sucesso.
Atualizar:
Existe uma opção
-spf
no 7z para Linux que funciona com caminho absoluto.Segundo Marco ,
-spf
também está disponível no Windows a partir do 7-zip 15.14fonte
'-x!path2\bin'
para não substituir a shell ... (obtendo um "comando" sintaticamente incorreto por muito mais tempo ...)'-xr!\.foo'