У меня есть несколько папок, и внутри каждой папки есть ZIP-файлы. Я хочу запустить командную строку, чтобы рекурсивно пройтись по каждой папке и извлечь на месте каждый найденный архивированный файл, а затем перейти к следующей папке. Это вообще возможно?
3 ответа
Если вы используете 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-файлы.
Используйте открытый инструмент Multi Unpacker для Windows. Это требует, чтобы вы установили WinRAR, но кроме этого он довольно универсален ...
С 7-Zip вы можете выполнить следующую команду, чтобы извлечь все файлы в вашу текущую базовую папку:
7z e -an -air!*.zip -r
Так что если у вас есть
.
+ \ folder
+ \ file.zip
содержимое файла .zip закончится в .
со всеми удаленными папками архива.
Или используйте параметр x
для извлечения, включая подпапки архива.
Возможно, вы сможете поиграть с опцией -o
чтобы каждый zip-файл был извлечен в подпапке, в которой он находится, хотя я часто нахожу, что вместо этого мне нужно поместить все файлы в одно место.