7

У меня есть несколько папок, и внутри каждой папки есть ZIP-файлы. Я хочу запустить командную строку, чтобы рекурсивно пройтись по каждой папке и извлечь на месте каждый найденный архивированный файл, а затем перейти к следующей папке. Это вообще возможно?

3 ответа3

9

Если вы используете Linux, вы можете использовать

find -iname \*.zip -exec unzip {} \;

(после установки unzip)

В Windows вы можете использовать

FOR /F "usebackq" %a in (`DIR /s /b *.zip`) do 7z.exe e %a

Предполагая, что у вас есть 7z.exe в вашем PATH. Запустите эту команду в папке, куда вы хотите (рекурсивно) разархивировать все ZIP-файлы.

5

Используйте открытый инструмент Multi Unpacker для Windows. Это требует, чтобы вы установили WinRAR, но кроме этого он довольно универсален ...

Мульти распаковщик

3

С 7-Zip вы можете выполнить следующую команду, чтобы извлечь все файлы в вашу текущую базовую папку:

7z e -an -air!*.zip -r

Так что если у вас есть

.
+ \ folder
    + \ file.zip

содержимое файла .zip закончится в . со всеми удаленными папками архива.

Или используйте параметр x для извлечения, включая подпапки архива.

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

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