Línea de comando 7-Zip para extraer una carpeta de un archivo

16

Estoy usando la 7-Zip de comandos para extraer una postal archivo llamado abc.zipque es un archivo con una carpeta llamada 'cremallera' con tres archivos de texto en ella ( a.txt, b.txty c.txt).

Mi problema es cuando lo extraigo con el siguiente comando:

7z e C:\abc\abc.zip -y oC:\abc

7-Zip extractos de todo, pero no extraer la carpeta 'cremallera', sólo extractos a.txt, b.txty c.txty los pone en el destino de salida (es decir, C:\abc).

¿Cómo puedo hacer que 7-Zip solo extraiga la carpeta real?

medicinas
fuente

Respuestas:

9

Probablemente debería haber un guión delante de o:

-oC:\abc

Considere también la -ropción de recursión.

kod
fuente
0

Tuve que resolver un problema similar. Aquí está el código que usé. Este script recibe una carpeta y descomprime todas las cremalleras (y luego las elimina). El truco es descomprimir los datos en una carpeta especial. Un poco nervioso pero funciona ...

@echo off

set SEVEN_ZIP_HOME=C:\Program Files\7-Zip

set TEMPDIR=temp

set WORKING_DIR="%1"

if "%WORKING_DIR%"==""  set WORKING_DIR=%~dp0

cd /d %WORKING_DIR%

if not exist %TEMPDIR% md %TEMPDIR%

for %%i in ("%WORKING_DIR%\*.zip") do call :unzipAndDelete "%%i"

rd %TEMPDIR%

goto :end

:unzipAndDelete 

set ZIP_FILE=%~1

call :extractName %ZIP_FILE%

call "%SEVEN_ZIP_HOME%\7z.exe" e "%ZIP_FILE%" -o./%TEMPDIR%

copy .\%TEMPDIR%\*.* %FILENAME%.log

del .\%TEMPDIR%\*.* /q

del "%ZIP_FILE%"

goto :end

:extractName 

set FILENAME=%~n1
goto :end


:end
usuario536281
fuente