Extraer un determinado archivo de un archivo con 7-Zip desde la línea de comando


34

Si tengo un archivo, por ejemplo, some.zipque contiene uno o más archivos, ¿cómo puedo extraer solo un archivo (sé el nombre del archivo) con 7-Zip desde la línea de comandos en Windows?

Respuestas:


32

Como seguimiento a la respuesta de surfasb , agregue una bandera -r al final para repetir:

7z e [archive.zip] -o[outputdir] [fileFilter] -r

Múltiples filtros compatibles:

7z e [archive.zip] -o[outputdir] [fileFilter_1] [fileFilter_2] -r

Ejemplo:

Línea de comando de filtros múltiples:

7z e archive.zip -o outputdir *.xml *.dll -r

PD: yo uso 7za.exe en lugar de 7z.exe. Este es el comando real que uso en mi script:

7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r

1
¿Cómo puedo agregar múltiples filtros de archivos, digamos .XMLy .zip? Lo siento si estoy secuestrando este hilo, simplemente no quería agregar una pregunta duplicada.
Fr0zenFyr

1
Debería estar bien separando los filtros por espacio. Vea la respuesta editada arriba. :)
zionyx

¿Y cómo extraigo un archivo específico de un archivo dentro del archivo? Digamos que el archivo que estoy buscando es "MyFile.txt" dentro de "SubArchive.zip" dentro de "MainArchive.zip". es posible?
PeterCo

1
@PeterCo, creo que el comando solo es capaz de extraer SubArchive.zipdel MainArchive.zipen tu caso Es posible realizar un seguimiento del sistema para extraer MyFile.txta partir SubArchive.zipdespués de la extracción inicial.
zionyx

13

Simplemente agrega el nombre de archivo al final.

7z e [archive.zip]-o [outputdir] [fileFilter]


1
¿Cómo puedo agregar múltiples filtros de archivos, digamos .XMLy .zip? Lo siento si estoy secuestrando este hilo, simplemente no quería agregar una pregunta duplicada.
Fr0zenFyr

Es una pregunta diferente @ Fr0zenFyr. Para dejar en claro que no está duplicado, puede hacer referencia a esta pregunta por su cuenta y luego especificar cómo es diferente la suya.
music2myear

@ music2myear: Gracias por la aclaración. La respuesta más votada por zionyx ya incluye una solución. Mi comentario tiene más de 2 años, por lo que sería razonable suponer que utilicé la solución anterior o que ya publiqué una pregunta y encontré una respuesta (BTW, este fue mi caso). Mi publicación resuelta está en SO y el hilo original creado antes de que mi comentario esté aquí, así que no pude vincularme a esta pregunta. :)
Fr0zenFyr

Nota: como está escrito aquí, no ponga espacio entre -o y outputdir.
Bufón del Rey

4

Si observa la página de manual de 7z, encontrará que el siguiente comando puede usarse para extraer un archivo de un archivo de 7z (aunque falta el uso de la ruta en la página de manual):

7z x <archive> <path to file>

Ejemplos:

7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html

Alternativamente, podría usar e.

La guía de usuario de la versión de línea de comando parece tener más información sobre el uso real.


2
¿Es esa la ruta relativa dentro del archivo?
music2myear

Sí, el "folderwithin" es una carpeta en la raíz del archivo.
Bufón del Rey

1

Tenga en cuenta que 7ztiene la siguiente sintaxis (observe los espacios y las comillas que rodean la "-oMy Folder"opción para establecer el nombre de la carpeta de salida, me tomó horas averiguarlo, ya que originalmente lo hice, de la manera incorrecta: * -o "My Folder"*):

7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.