Usando a linha de comando para compactar arquivos individualmente no formato .zip, mantendo a estrutura de diretórios

0

Estou tentando criar um script cmd que cruze recursivamente um diretório e zipe cada arquivo individualmente. Isso eu fiz aqui:

for /R %%b IN (*.*) do ( "C:\Program Files\WinRAR\WinRAR.exe" a "%%~nb.zip" "%%b" )

No entanto, gostaria de manter os arquivos zip na estrutura de pastas original e ter os resultados em uma pasta separada da pasta original. Por exemplo:

Antes:

/original
    /some_files
        file-1.txt
        file-2.txt

Depois:

/original
    /some_files
        file-1.txt
        file-2.txt

/packed
    /some_files
        file-1.zip
        file-2.zip

Alguém tem alguma sugestão sobre como alterar o original?

    
por user12834 23.02.2014 / 00:08

1 resposta

0

Consegui descobrir algo próximo:

for /R %%b IN (*.*) do ("C:\Program Files\WinRAR\WinRAR.exe" a -ibck "%%~pb\%%~nb.zip" "%%b" )

Ele cria os zips nos diretórios que eles acessam. Eu poderia adicionar o caminho correto antes de %%~pb , mas atualmente ele puxa o caminho completo "C: \ Users \ Matt ...", então eu provavelmente preciso de algo diferente lá.

-ibck mantém o WinRAR em execução em segundo plano.

Isso foi bom o suficiente para resolver o meu problema.

    
por 23.02.2014 / 01:40