Extrai o arquivo de um zip dentro de outro zip usando a linha de comando 7z

1

Eu conheço este comando:

7z e [archive.zip]-o[outputdir] [fileFilter]

Mas o arquivo que eu quero extrair está em um Zip dentro de outro Zip por exemplo:

Archivo1.zip\Carpeta1\Archivo2.zip 

Eu uso esta linha, mas o resultado é que não consigo encontrar o arquivo:

C:\Program Files-Zipz" x "C:\File 1.zip\Folder 1\File 2.zip" -O"C:\Output folder" "Imagen 1.tif"

Como posso trabalhar?

    
por Carlos Sanchez 21.05.2016 / 01:03

1 resposta

1

extract file from a zip inside another zip using 7z command line

Abaixo está uma maneira de script CLI 7Zip que fiz isso de alguns anos atrás. Eu tive que usá-lo e ajustá-lo uma ou duas vezes desde que fosse necessário conforme necessário.

Isso extrai todos os arquivos zip (e seus conteúdos) dentro de outros arquivos zip (e seus conteúdos) até que nenhum outro arquivo zip permaneça extraído e essencialmente percorra recursivamente a partir do arquivo zip pai inicial [root] até o último arquivo zip filho. e seu conteúdo; extraindo arquivos de todos os arquivos zip e sub-zip.

Eu usei esse método para percorrer cerca de quatro níveis por alguma razão ridícula em que uma empresa estava enviando dados como este como padrão e não podia alterá-lo, mas ainda assim consegui automatizar a parte que me foi dada .

Script em lote CLI 7za

Defina as variáveis de origem, destino e diretório de trabalho para sua necessidade e copie o arquivo para a pasta do diretório de origem e, em seguida, inicie o processo. Caso contrário, você pode alterar o *.zip com <ParentZipFileName>.zip .

:: This script uses the 7zip CLI to extract ZIP file(s) contents in one location to another
:: It then does an XCOPY of extracted ZIP files within the initial extacted files and copies those to a workdir
:: It then deletes ZIP files from source, and extracts the other ZIP files from workdir and loops until complete
:: NOTE that the 7za may need to have the environmental variable set accordinly

SET sourcedir=C:\Source
SET destdir=C:\Dest
SET workdir=C:\Workdir
IF NOT EXIST "%sourcedir%" MD "%sourcedir%"
IF NOT EXIST "destdir%" MD "%destdir%"
IF NOT EXIST "%workdir%" MD "%workdir%"

:unzip
7za -Y e "%sourcedir%" -o"%destdir%" -r
IF EXIST "%workdir%\*.zip" DEL /Q /F "%workdir%\*.zip"
XCOPY /Y /F "%destdir%\*.zip" "%workdir%\"
IF EXIST "%destdir%\*.zip" DEL /Q /F "%destdir%\*.zip"

DIR "%workdir%\*.zip" /A-D                         
ERRORLEVEL 1 GOTO done

:unzip2
7za -Y e "%workdir%" -o"%destdir%" -r
IF EXIST "%workdir%\*.zip" DEL /Q /F "%workdir%\*.zip"
XCOPY /Y /F "%destdir%\*.zip" "%workdir%\"
IF EXIST "%destdir%\*.zip" DEL /Q /F "%destdir%\*.zip"

DIR "%workdir%\*.zip" /A-D                         
IF ERRORLEVEL 1 GOTO done
GOTO unzip2

:done
GOTO EOF

Mais recursos

por 21.05.2016 / 05:01