Você precisa usar 7z x archive.zip
para extrair com caminhos completos. Consulte: link
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?
Você precisa usar 7z x archive.zip
para extrair com caminhos completos. Consulte: link
Provavelmente deve haver um hífen na frente do o
:
-oC:\abc
Considere também a opção -r
para recursão.
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
Tags command-line console 7-zip