Витягніть ZIP-файл, а потім усі суб-поштові файли


1

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


Здається, це близько до superuser.com/q/421915/328618 . На жаль, ви не зазначаєте, якщо розпакований вміст може зіставити імена з уже наявними файлами чи ні (для розпакованого матеріалу може знадобитися додатковий каталог, щоб його містити) і що має статися з розпакованими поштовими файлами.
mvw

Відповіді:


1

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

По суті це. . .

  • Використовує додаток 7-Zip (7za) для вилучення вмісту-поштових файлів в одному місці в інше
  • Потім він робить 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

Подальші ресурси

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.