Скрипт для извлечения zip-файлов из отдельных папок в свои собственные папки

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

РЕДАКТИРОВАТЬ:

Каждая папка находится в одной родительской папке. Итак, иерархия выглядит следующим образом:

PARENT FOLDER
-SubFolder1
--somefile.zip
-Subfolder2
--somefile.zip
...
-SubfolderN
--somefile.zip

person polerto    schedule 15.12.2012    source источник
comment
Пожалуйста, будьте более конкретными, например. важно знать, какую ОС вы используете.   -  person schnaader    schedule 15.12.2012
comment
У меня есть доступ как к машине с Linux, так и к машине с Windows, поэтому ответ на любой из них в порядке.   -  person polerto    schedule 15.12.2012


Ответы (2)


В unix вы можете использовать что-то вроде

find <dir> -iname '*.zip' -execdir unzip {} \;

Программа find проходит <dir> рекурсивно, и для каждого найденного ZIP-файла она переходит в этот каталог файлов и выполняет распаковку для него.

person Max    schedule 15.12.2012

Версия Windows:

for /r "C:\Some\Directory" %f in (*.zip) do unzip "%f" -d "%~dpf"

Внимание! Полностью не проверено.

Рекомендации:

думаю с 7-zip будет

for /r "C:\Some\Directory" %f in (*.zip) do 7z x -o "%~dpf" "%f"

но это еще не проверено.

person melpomene    schedule 15.12.2012
comment
спасибо @melpomene, но распаковка не распознается. вот вывод: 'unzip' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл. - person polerto; 16.12.2012
comment
Да, эта команда предполагает, что у вас установлен unzip, конечно. (Очевидно, я получил свой с помощью texlive. Интересно!) - person melpomene; 16.12.2012