Показать полную графическую версию : Распаковка большого количества zip.Помогите подправить пожалуйста
Rafael26
12-03-2013, 13:31
FOR /D /r %%F in ("*") DO (
pushd Н%
cd %%F
FOR %%X in (*.zip) DO (
"C:\Program Files\7-zip\7z.exe" x "%%X"
)
popd
)
у меня в папках по 2-3 архива и данный скрипт все в одну кучу распаковывает. помогите сделать так, чтобы каждых архив распаковывался в отдельную папку с тем же расположением и с таким же названием как и сам архив
Foreigner
12-03-2013, 19:09
@echo off
for /d /r %%i in (*) do (
for %%j in ("%%i\*.zip") do "%ProgramFiles%\7-zip\7z" x "%%j" -o"%%i\%%~nj"
)
Foreigner, не знаю нужно ли это ТС, но распаковка будет не корректной при наличии вложенных архивов, т.к., получаемая таким образом папка, с именем архива, не будет соответствовать по содержимому тому, что содержит сам архив.
Пример:
Папка 1 содержит файл 2.zip
Файл 2.zip содержит два файла 3.zip и 4.zip
Файлы 3.zip и 4.zip содержат по одному файлу 3.txt и 4.txt соответственно.
После корректной распаковки в папке 1 должен остаться файл 2.zip и создастся папка 2 с двумя файлами 3.zip и 4.zip. На этом распаковка должна закончиться.
Но скрипт продолжит обработки папок и будет распаковывать появившиеся в папке 2 файлы 3.zip и 4.zip с созданием соответствующих папок 3 и 4. (рекурсия с архивами может быть и более глубокой и запутанной)
А если предположить, что в файле 2.zip кроме файлов 3.zip и 4.zip были еще и папки 3 и 4 с собственным содержимым, то содержимое архивов 3.zip и 4.zip будет распаковано в них и путаницы не избежать.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.