1

Я знаю эту команду:

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

Но файл, который я хочу извлечь, находится в Zip внутри другого Zip, например:

Archivo1.zip\Carpeta1\Archivo2.zip 

Я использую эту строку, но в результате не могу найти архив:

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

Как я могу сделать работу?

1 ответ1

1

извлечь файл из zip внутри другого zip с помощью командной строки 7z

Ниже приведен сценарий 7Zip CLI, который я сделал несколько лет назад. Мне пришлось использовать и корректировать его раз или два, чтобы приспособиться по мере необходимости.

Это извлекает все zip-файлы (и их содержимое) в другие zip-файлы (и их содержимое) до тех пор, пока не останется никаких других zip-файлов для извлечения и, по существу, рекурсивно переходит из исходного [root] родительского zip-файла до последнего дочернего zip-файла и его содержимого. ; извлечение файлов из всех файлов zip и sub-zip.

Я использовал этот метод для обхода примерно четырех уровней по какой-то нелепой причине, когда компания отправляла такие данные в качестве стандарта и не могла их изменить, но я все еще была в состоянии автоматизировать ту часть, которую мне дали для этого.


CLI 7za Batch Script

Задайте переменные исходного, конечного и рабочего каталогов, которые вам нужны, и скопируйте файл в папку исходного каталога, а затем запустите его. В противном случае вы можете изменить *.zip с помощью <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

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .