portable para open online gratis files descargar scripting gzip archive tar 7zip

scripting - para - extrae programáticamente tar.gz en un solo paso(en Windows con 7zip)



open 7z files (4)

PROBLEMA: me gustaría poder extraer archivos tar.gz en un solo paso. Esto hace que mi pregunta sea casi idéntica a esta: pregunta stackoverflow para tar-gz .

Mi pregunta es casi la misma, pero no es lo mismo, porque me gustaría hacer esto en Windows usando la línea de comandos 7zip (o algo similar) dentro de un archivo bat o un script de ruby ​​/ perl / python.

PREGUNTA: Esta tarea aparentemente simple está demostrando ser más complicada de lo que parecería ser la primera aparición. ¿Alguien tiene un script que hace esto ya?



7z e example.tar.gz && 7z x example.tar

Usa && para combinar dos comandos en un solo paso. Use 7zip portable (solo necesitará 7z.exe y 7z.dll)


Como solicitó 7-zip o algo similar, proporciono una herramienta alternativa que fue escrita para su caso de uso exacto.

La utilidad tartool (http://tartool.codeplex.com/) es una herramienta gratuita y de código abierto creada con la biblioteca .NET SharpZipLib.

Ejemplo de comando para extraer un archivo .tar.gz (o .tgz),

C:> TarTool.exe D: / sample.tar.gz ./

Descargo de responsabilidad: soy el autor de esta utilidad.


Una vieja pregunta, pero estaba luchando con eso hoy, así que aquí está mi 2c. La herramienta de línea de comandos 7zip "7z.exe" (tengo v9.22 instalado) puede escribir en stdout y leer desde stdin para que pueda prescindir del archivo tar intermedio mediante el uso de un conducto:

7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"

Dónde:

x = Extract with full paths command -so = write to stdout switch -si = read from stdin switch -aoa = Overwrite all existing files without prompt. -ttar = Treat the stdin byte stream as a TAR file -o = output directory

Consulte el archivo de ayuda (7-zip.chm) en el directorio de instalación para obtener más información sobre los comandos e interruptores de la línea de comando.

Como lo señala @zespri, powershell almacenará en búfer la entrada al segundo proceso 7z, por lo que puede consumir mucha memoria si su archivo tar es grande. es decir:

& 7z x "somename.tar.gz" -so | & 7z x -aoa -si -ttar -o"somename"

Una solución de esta respuesta SO si desea hacer esto desde powershell es pasar los comandos a cmd.exe:

& cmd.exe ''/C 7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"''