7-Zip: cria um arquivo zip de um subdiretório, com o mesmo nome do próprio subdiretório

1

Eu tenho uma situação única em que preciso da seguinte estrutura de pastas (Windows)

X:\LOGS\PRIMARY\YEARMONTHDAY

por exemplo,

X:\LOGS\HS121010

As pastas são criadas todas as manhãs.

Essencialmente eu gostaria de zipar o conteúdo do subdiretório de data e colocá-lo dentro desse diretório. Isso deve ser feito com 7z ou com 'FORFILES'?

    
por Tal 11.10.2012 / 21:54

1 resposta

0

Se bem entendi, você quer pegar uma pasta específica que é criada em um formato YYYYMMDD e zipar o conteúdo. O arquivo zip gerado precisa ser colocado nessa pasta também.

No nível mais básico, você pode realizar isso com um comando como o seguinte

"c:\Program Files-Zipz.exe" a x:\Logs\HS121010121010.zip X:\Logs\HS121010\*

NOTA: 7-zip deve ser instalado para usar o comando acima

Com o comando acima, você teria que preencher manualmente o AAAAMMDD toda vez que quiser fechar uma nova pasta de data.

Isso pode ser levado um passo adiante e você pode modificar o comando para usar o YYYYMMDD atual para a data de hoje. A chave para isso é usar a variável% date% no DOS. Você pode ler mais informações sobre essa variável digitando set /? . Para formatar a data como YYYYMMDD, precisaremos de uma subcadeia da variável %date% da seguinte forma:

echo %date:~10,4%%date:~4,2%%date:~7,2%

O comando acima deve mostrar a data em AAAAMMDD.

Por último, podemos colocar esses dois comandos juntos para gerar um comando de uma linha que irá zipar todos os arquivos no diretório com a data de hoje (no formato YYYMMDD).

"c:\Program Files-Zipz.exe" a x:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\%date:~10,4%%date:~4,2%%date:~7,2%.zip X:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\*

Uma etapa adicional pode ser executada para automatizar isso, adicionando o comando acima como uma tarefa agendada no Windows.

    
por 13.10.2012 / 01:42

Tags