2012-04-11 14 views
6

Hay muchas maneras para descomprimir archivos en Unix:¿Cómo descomprimir programáticamente archivos en sus propios directorios en Windows con un comando de DOS?

El objetivo es encontrar todos los archivos y descomprimir ellos en su propio directorio (donde se encuentra cada archivo) en Windows.
Opcional:

  • eliminar el archivo después de descomprimir.
  • registra cualquier mensaje de error si un archivo tiene algún problema durante la descompresión.

Busco a una línea de comandos de DOS normal , utilizando, por ejemplo, 7z.exe (que se incluye en la versión portátil de PeaZip).

Respuesta

7

Tomé una línea de comandos de this thread of the sevenzip project, con una pequeña modificación:

FOR /R %I IN (*src.zip) DO (C:\apps\peazip_portable-3.8.WINDOWS\res\7z\7z.exe x "%I" -aoa -o"%~dpI\*" |c:\windows\system32\find.exe "Everything is Ok" >nul &&DEL /F "%I" ||ECHO.%I : EXTRACT FAIL - ARC NOT DELETED >>ERR.TXT) 

(multi-línea para la visibilidad)

FOR /R %I IN (*src.zip) DO (\ 
    C:\apps\peazip_portable-3.8.WINDOWS\res\7z\7z.exe x "%I" -aoa -o"%~dpI\*" 
    |c:\windows\system32\find.exe "Everything is Ok" >nul &&DEL /F "%I" 
    ||ECHO.%I : EXTRACT FAIL - ARC NOT DELETED >>ERR.TXT) 

Notas:

  • prefiero especificando "c:\windows\system32\find.exe" en lugar de solo FIND, porque tengo otro 'find.exe 'en mi PATH (desde msysgit, o gow).
  • elimine la parte '&&DEL /F "%I"' si desea mantener los archivos en su lugar.

acabo descomprimidos 470 "src.zip" de la Rational Team Concert SDK en dos minutos con esa sola línea!

0

Esta es una vieja pregunta, pero a alguien le puede resultar útil. Este método funcionó para mí usando WinZip y el add-on WinZip Command Line, ambos disponibles en el sitio de WinZip para usuarios registrados.

FOR /R %I IN (*.zip) DO (C:\Program Files (x86)\winzip\wzunzip.exe -ye "%I" "%~pI") 

-ye nombrará la carpeta después del nombre del archivo zip. % I es el nombre del archivo comprimido % ~ pI es el contenido del archivo comprimido destino

Puede agregar los mensajes de depuración en la respuesta anterior. Ejecute el comando dentro de la carpeta donde se almacenan todas las subcarpetas que contienen sus archivos zip.

Cuestiones relacionadas