Crie um 7-Zip incluindo apenas a pasta especificada e excluindo certas extensões. Sem digitalização

5

Estou tentando criar um arquivo 7-Zip que comprimiria uma determinada pasta (apenas uma especificada!), excluindo uma certa extensão de arquivo. Eu vim com isso:

"PATH-TO-7Z.EXE" a archive.7z "C:\tools\" -t7z -mx=9 -mhe=on -mtc=on -sccUTF-8 -scsUTF-8 -ssc- -ssw -y -slp -r -x!*.avi

O que isto faz, no entanto, é SCANNING toda a unidade c procurando por ferramentas ( C:\tools\ é dado como um alvo no exemplo acima) como palavra-chave e adicionando qualquer coisa que encontre no meu arquivo.

Existe uma maneira de evitar isso? Significado SOMENTE arquivar C:\tools\ ao excluir extensões especificadas.

Eu acho que é algo sobre a opção -r , mas não tenho certeza sobre o quê.

    
por Amore 03.07.2012 / 13:58

2 respostas

3

Pesquisas 7-Zip baseadas no diretório atual. Esse bit de informação não é explicitamente documentado, mas está implícito na ajuda do comando Add:

cd /D c:\dir1\
7z a c:\archive3.zip dir2\dir3\ 

The filenames in archive c:\archive3.zip will contain dir2\dir3\ prefix, but they will not contain c:\dir1\ prefix.

Você precisará alterar seu diretório atual antes de iniciar o 7-zip, para que seu comando se pareça com:

pushd "C:\Tools" & C:\Path\Toz.exe a -r -x!*.avi archive.7z * & popd

Você também pode dividir essa sequência em três linhas, se desejar.

Além disso, você tem muitas opções desnecessárias em sua linha de comando:

  • -ssc- : padrão em um sistema Windows
  • -t7z : necessário apenas quando o tipo de arquivo não pode ser determinado a partir da extensão (por exemplo, -tzip deve ser especificado se você quiser criar um arquivo .xpi )
  • -mhe=on : você precisará verificar novamente, mas não acho que a criptografia de cabeçalho faça nada em um arquivo não criptografado.
  • -scsUTF-8 : configuração padrão
  • -sccUTF-8 : necessário apenas se você quiser ler a saída do console (ou redirecionar para o arquivo) e realmente precisar do UTF-8 para esse propósito específico
  • -y : não funciona com o comando Adicionar ( -e ou -x apenas).
  • -ssw : Se você acha que precisa disso, deve observar a operação em um instantâneo do VSS para garantir uma cópia consistente do arquivo que está sendo lido. Se isso estiver sendo usado com um aplicativo específico cujo comportamento você testou, ignore este ponto
  • -slp : verifique se você leu a ajuda e entendeu os requisitos e efeitos dessa opção e testou-a para garantir que ela não tenha um efeito adverso em seu ambiente.
por 03.07.2012 / 15:33
0

Sim, a opção -r não faz necessariamente o que você espera. Isto é agora mencionado em o FAQ: Por que não -r alterna o trabalho conforme o esperado? :

Why doesn't -r switch work as expected?

In most cases you don't need -r switch. 7-Zip can compress subfolders even without -r switch.

Example 1:

7z.exe a c:\a.7z "C:\Program Files" compresses "C:\Program Files" completely, including all subfolders.

Example 2:

7z.exe a -r c:\a.7z "C:\Program Files" searches and compresses "Program Files" in all subfolders of C:\ (for example, in "C:\WINDOWS").

If you need to compress only files with some extension, you can use -r switch: 7z a -r c:\a.zip c:\dir*.txt compresses all *.txt files from folder c:\dir\ and all it's subfolders.

    
por 27.03.2017 / 22:32