linha de comando 7-Zip para extrair uma pasta de um arquivo

14

Estou usando a linha de comando 7-Zip para extrair um ZIP arquivo chamado abc.zip , que é um arquivo com uma pasta chamada 'zipper' com três arquivos de texto ( a.txt , b.txt e c.txt ).

Meu problema é quando eu o extraio com o seguinte comando:

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

O 7-Zip extrai tudo, mas não extrai a pasta 'zipper', apenas extrai a.txt , b.txt e c.txt e os coloca no destino de saída (ou seja, C:\abc ) .

Como posso fazer o 7-Zip apenas extrair a pasta atual?

    
por meds 16.12.2011 / 00:15

3 respostas

18

Você precisa usar 7z x archive.zip para extrair com caminhos completos. Consulte: link

    
por 16.12.2011 / 00:26
6

Provavelmente deve haver um hífen na frente do o :

-oC:\abc

Considere também a opção -r para recursão.

    
por 16.12.2011 / 04:43
1

Eu tive que resolver um problema similar. Aqui está o código que usei. Este script recebe uma pasta e descompacta todos os zips (e os apaga depois). O truque é descompactar os dados em uma pasta especial. Um pouco nervoso mas funciona ...

@echo off

set SEVEN_ZIP_HOME=C:\Program Files-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%z.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
    
por 21.12.2015 / 16:31