Sob a pasta images\
, tenho as seguintes pastas:
Usa\
Italy\
Japan\
etc ..
Eu quero um script que cria um .zip
para cada uma dessas pastas, então eu tenho usa.zip
, italy.zip
, japan.zip
.
Como eu posso fazer isso?
Presumo que seja o Windows, pois você está usando barras invertidas.
Obtenha o 7za.exe (a versão da linha de comando do 7-zip ) e coloque-o no seu %PATH%
.
Em seguida, execute isso dentro do seu Images\
diretório:
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
Ou em um script em lote:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
Você pode usar o Winrar para isso.
Selecione todas as suas pastas, clique com o botão direito e selecione
Add to archive
. Agora selecione a opçãoPut each file to separate archive
na guiaFiles
:Clique em OK e pronto. Se você deseja arquivos .zip em vez de .rar, basta selecionar
ZIP
naGeneral
guia emArchive format
.fonte
Supondo que você esteja no Linux, você pode usar um script Bash como este:
Esse script pegará o primeiro argumento como pasta, neste caso imagens, e recuará exatamente um nível para obter todas as suas pastas (EUA, Itália e Japão) e compactá-las no mesmo local.
Não excluirá arquivos zip antigos ou as pastas de origem. O Zip é inteligente o suficiente para detectar arquivos zip existentes e atualizá-los quando executados novamente. No entanto, se você excluir um arquivo nas pastas de origem, ele não será excluído nos arquivos zip. Você pode contornar esse comportamento excluindo os arquivos existentes com antecedência.
fonte
Esta resposta do MvG funcionou para mim no Ubuntu:
fonte