BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Comprimir carpetas recursivamente en ficheros separados con el ZIP dentro de cada carpeta

pakoman

Hola.

Una carpeta con muchas subcarpetas conteniendo imagenes png.

Lo que quiero es comprimir los PNG de cada carpeta y que cada ZIP resultante tenga el nombre de cada subcarpeta y quede dentro de cada subcarpeta.

Con winrar es muy fácil de hacer salvo que los ZIP resultantes no quedan dentro de cada subcarpeta sino en la misma carpeta de éstas. Así que en su defecto valdría automatizar el mover un montón archivos a carpetas con el nombre de cada archivo.

¿Existe alguna forma de comprimir esto automáticamente con algun batch del tipo?:

@echo off
for /D %%x in (*) do (
if exist %%x\*.png (7zip a %%x\%%x.zip %%x\*.png ))

Pero que funcione, claro :D

Saludos.

EDITO:

set path="C:\Program Files\7-Zip\";%path%

@echo off
for /D %%x in (*) do (
if exist %%x\*.png (7z.exe a %%x\%%x.zip %%x\*.png ))

Funciona casi, lo único que falla es que los ZIP resultantes tienen dentro la carpeta y luego los PNG, me interesa que estén los PNG sin carpeta.

EDIT2:

set path="C:\Program Files\7-Zip\";%path%

@echo off
for /D %%x in (*) do (
if exist %%x\*.png (7z.exe a %%x\%%x.zip .\%%x\*.png ))

Ahora sí :)

BocaDePez
1

¡¡Batch que tiempos!!

Y si tiras del apartado de tratamiento de archivos de algún tutorial o manual en PowerShell, por ejemplo:

gallery.technet.microsoft.com/Manual-de- … -en-e538c74d

¡Lo siento si esperabas el trabajo hecho!

🗨️ 1
pakoman

Al final lo resolví yo solo. Gracias de todas formas!

BocaDePez

Otra opción que debe haber es cambiar al directorio que contiene las imágenes (es más largo que tu propuesta funcional, pero lo de añadir el directorio actual, el punto, a la ruta de la imagen creo que podría no funcionar según el programa). No estoy en Windows y no me conozco bien la sintaxis de DOS, pero creo que algo así debería funcionar:

set path="C:\Program Files\7-Zip\";%path%

@echo off

for /D %%x in (*) do (

cd %%x

if exist *.png (7z.exe a %%x.zip *.png )

cd .. )
🗨️ 1
pakoman

se me pasó por la cabeza hacer eso, pero no estaba seguro de que funcionaran varias lineas de código entre los ( )

Mis conocimientos son bastante limitadillos jeje