Debajo de la carpeta images\, tengo las siguientes carpetas:
Usa\Italy\Japan\
etc.
Quiero un script que crea una .zippara cada una de estas carpetas, por lo que tengo usa.zip, italy.zip, japan.zip.
¿Cómo puedo hacer eso?
Supongo que esto es Windows, ya que está utilizando barras invertidas.
Obtenga 7za.exe (la versión de línea de comandos de 7-zip ) y póngalo en su %PATH%.
Luego ejecute esto dentro de su Images\directorio:
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
O en un script por lotes:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
Suponiendo que esté en Linux, podría usar un script Bash como este:
Este script tomará el primer argumento como carpeta, en este caso imágenes, y repetirá exactamente un nivel de profundidad para obtener todas sus carpetas (Estados Unidos, Italia y Japón) y comprimirlas en el mismo lugar.
No eliminará los archivos zip antiguos ni las carpetas de origen. Zip es lo suficientemente inteligente como para detectar archivos zip existentes y actualizarlos cuando se ejecutan nuevamente. Sin embargo, si elimina un archivo en las carpetas de origen , no se eliminará en los archivos zip. Puede eludir este comportamiento eliminando los archivos existentes de antemano.
fuente
Puedes usar Winrar para esto.
Seleccione todas sus carpetas, haga clic derecho y seleccione
Add to archive. Ahora seleccione la opciónPut each file to separate archivedebajo de la pestañaFiles:Haga clic en Aceptar y ya está. Si desea archivos .zip en lugar de .rar, simplemente seleccione
ZIPen laGeneralpestaña debajoArchive format.fuente
Esta respuesta por MvG trabajó para mí en Ubuntu:
fuente