
Eu conheço este comando:
7z e [archive.zip]-o[outputdir] [fileFilter]
Mas o arquivo que 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\7-Zip\7z" x "C:\File 1.zip\Folder 1\File 2.zip" -O"C:\Output folder" "Imagen 1.tif"
Como posso fazer trabalho?
Responder1
extrair arquivo de um zip dentro de outro zip usando a linha de comando 7z
Abaixo está um script 7Zip CLI que fiz isso alguns anos atrás. Tive que usá-lo e ajustá-lo uma ou duas vezes para acomodar conforme necessário.
Isso extrai todos os arquivos zip (e seu conteúdo) dentro de outros arquivos zip (e seu conteúdo) até que nenhum outro arquivo zip permaneça para extrair e essencialmente percorre recursivamente do arquivo zip pai [raiz] inicial até o último arquivo zip filho e seu conteúdo ; extraindo arquivos de todos os arquivos zip e sub-zip.
Usei esse método para percorrer cerca de quatro níveis por algum motivo ridículo, onde uma empresa estava enviando dados como esse como padrão e não podia alterá-los, mas ainda consegui automatizar a parte que me foi dada para fazer isso.
Script em lote CLI 7za
Defina as variáveis do diretório de origem, destino e de trabalho de acordo com sua necessidade e copie o arquivo para a pasta do diretório de origem e, em seguida, inicie-o. Caso contrário, você pode alterar o *.zip
with <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