7zip: Como excluir arquivos (não tipos de arquivos) usando um arquivo de lista de exclusão?

11

Eu sei que você pode criar um arquivo de texto contendo uma lista de arquivos e, em seguida, pedir ao 7zip para fazer referência a esse arquivo para que ele possa excluí-los do arquivo, mas não consigo encontrar a sintaxe para isso. Alguém pode ajudar?

oscilatingcretin
fonte

Respostas:

9

Depois de algumas horas de busca, eu finalmente descobri. Aqui está a sintaxe do comutador:

7z a [email protected] backup.7z c:\whatever\*

Observe em -xrvez de -x. O rindica recursivo para que ele possa corresponder aos arquivos excluídos nas hierarquias profundas de pastas. Além disso, o formato do arquivo de texto pode ser pelo menos ANSI ou UTF-8.

Quanto ao arquivo que contém os arquivos, como o OldWolf disse, é uma lista separada por retornos de carro como este:

Telerik.Reporting.dll
Telerik.Reporting.Service.dll
Telerik.ReportViewer.WebForms.dll
Telerik.Web.Design.dll
Telerik.Web.UI.dll
*.txt

Funciona como um encanto.

oscilatingcretin
fonte
1
Obrigado! Eu estava tentando excluir com a opção de curinga e verifica-se que estava faltando a ropção. Esta é a maneira correta de excluir arquivos PNG de forma recursiva em bash (aspas simples para bater parar de se expandir !e *): -xr'!*.png' (edit: aspas simples em vez de escape)
thomasa88
4

Eu acho que você quer a opção -x com @

7z a -t7z my.zip * [email protected]

Em retrospecto, percebi que você pode ter desejado a sintaxe do arquivo de lista. Deve ser uma lista separada por nova linha. Você pode estar com um problema de codificação. 7z espera que ele esteja no formato UTF-8, você pode substituir isso pela opção -scs ou pode pedir ao bloco de notas para salvar o arquivo no formato UTF-8

OldWolf
fonte
2
Obrigado pelo lembrete sobre a codificação de arquivos. Estou intrigado há horas sobre o motivo pelo qual minha lista de exclusão não estava sendo obedecida. Eu produzo o arquivo em um script do PowerShell usando Out-File, cujo padrão é Unicode. Alterando-o para a saída UTF8 e de repente tudo simplesmente funciona.
WileCau
0

Se sua lista for realmente curta, você pode ter mais de um sinalizador -x:

7z a -r CppSourceJBR.zip * .cpp .h -x! Stdafx. -x! targetver.h

Entre os testes, tive que continuar excluindo o arquivo .zip. Quando eu esqueci isso, por exemplo, targetver.h ainda estava no ZIP desde a última execução.

jbr
fonte