Extraer recursivamente con 7-Zip

7

Tengo varias carpetas, y dentro de cada carpeta, hay archivos ZIP. Quiero ejecutar un orden de línea de comando para revisar recursivamente cada carpeta y extraer en su lugar cada archivo archivado que encuentre, luego pasar a la siguiente carpeta. ¿Es esto posible?

newyuppie
fuente
¿Qué debe hacer si hay varios archivos ZIP en la misma carpeta? ¿Debería extraerlos en subcarpetas o extraer su contenido en la misma carpeta (como los archivos ZIP), y si es así, debería sobrescribir o ignorar duplicados?
Synetech
¿Qué sistema operativo estás usando?
Dennis Williamson
La mejor manera de hacer esto podría ser escribir un pequeño guión para hacerlo. ¿En qué sistema operativo estás?
Leif
1
En realidad, no es necesario ningún script, debe ser factible con un solo comando FOR; Las opciones específicas de 7-zip dependen de los requisitos.
Synetech

Respuestas:

9

Si está utilizando Linux, puede usar

find -iname \*.zip -exec unzip {} \;

(después de la instalación unzip)

En Windows, puedes usar

FOR /F "usebackq" %a in (`DIR /s /b *.zip`) do 7z.exe e %a

Asumiendo que tienes 7z.exeen tu RUTA. Ejecute ese comando en la carpeta donde desea descomprimir (recursivamente) todos los archivos zip.

Olli
fuente
5

Use la herramienta de código abierto Multi Unpacker para Windows. Requiere que haya instalado WinRAR, pero aparte de eso, en realidad es bastante versátil ...

Multi Unpacker

derio
fuente
3

Con 7-Zip puede emitir el siguiente comando para extraer todos los archivos a su carpeta base actual:

7z e -an -air!*.zip -r

Entonces si tienes

.
+ \ folder
    + \ file.zip

el contenido de file.zip terminará .con todas las carpetas de archivo eliminadas.

O utilice la xopción para extraer, incluidas las subcarpetas del archivo.

Es posible que pueda jugar con la -oopción de extraer cada archivo zip en la subcarpeta en la que se encuentra, aunque a menudo encuentro que necesito colocar todos los archivos en una ubicación.

jessehouwing
fuente