zip subpastas individualmente

0

alguém pode me ajudar a fazer um arquivo em lotes para o meu problema. Eu tenho várias pastas que eu quero compactar individualmente.

root

  • folder 1

    file 1
    file 2

  •     
  • pasta 2          

    file 1
    file 2

  •     

Eu preciso ir primeiro dentro da pasta 1, em seguida, zip todo o seu conteúdo (arquivos e pastas, até mesmo os subdiretórios nele), em seguida, tem o arquivo zip com o nome da pasta. depois disso, vá para a pasta 2 e faça o mesmo.

havia um script simples:

para / d %% X em (*) "c: \ Arquivos de programas \ 7-Zip \ 7z.exe" a "%% X" "%% X \"

mas o resultado não é o que pretendo obter. O script acima irá compactar todas as pastas dentro individualmente, mas o arquivo terá pasta dupla quando extraído. o código acima irá compactar a pasta 1. mas quando eu extrair a pasta 1 será parecido com isto:

root

folder 1

folder 1

file 1
file 2

        
      
    
  

não pode ser como entrar na primeira pasta, compactar tudo nela, salvar o arquivo zip com o nome da pasta e ir para a próxima pasta até que tudo seja compactado.

    
por Denis Macaraig 16.10.2013 / 20:47

1 resposta

0

Depende do comando que você usa para extrair.

Se você escolher "extrair aqui", obterá exatamente o que deseja.

Se, no entanto, você realmente não quiser os nomes das pastas em seu arquivo, poderá fazer o seguinte:

for /d %%X in (*) do "c:\Program Files-Zipz.exe" a "%%X" ".\%%X\*"

Observe o .\%%X\* . Isso excluirá o próprio nome do diretório.

    
por 16.10.2013 / 22:51