1

Я использую Windows 10, но мне нужно, чтобы она работала и в Windows 7.
У меня есть file.zip который содержит x zip-файлов, каждый из которых также содержит x zip-файлов. Как бы я мог извлечь все это "не вручную"? IE с файлом bach или скриптом python?

1 ответ1

1

Ниже приведен метод, который я использовал в прошлом для тех же задач, которые вы описываете, которые я вытащил из одного из своих « пакетов сценариев ». Я использовал бесплатное приложение 7-Zip для этой задачи со 100% успехом.

По сути это. , ,

  • Использует приложение 7-Zip (7za) для извлечения содержимого файла zip из одного места в другое
  • Затем он делает XCOPY извлекаемых файлов ZIP в пределах начальных извлекаемых файлов и копий этих в рабочий каталог
  • Затем он удаляет ZIP-файлы из источника и извлекает другие ZIP-файлы из рабочего каталога и зацикливается до полного завершения.

Примечание. Возможно, что исполняемый файл 7za необходимо скопировать в папку /system32 или указать путь к нему, который находится в переменной среды PATH .


Пакетный скрипт

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

@ECHO ON

SET sourcedir=C:\Test\Source
SET destdir=C:\Test\Dest
SET workdir=C:\Test\WorkTemp

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

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

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

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

:done
GOTO :EOF

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

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