Показать полную графическую версию : Распаковка ВСЕХ архивов в папку с тем же именем
death7lord
19-09-2013, 18:16
Собственно есть папка, в ней дофига других папок с раскиданными файлами и архивами в произвольном порядке....
Хотелось бы распаковать абсолютно ВСЕ архивы рядом (т.е. в папки с именами как у архивов) и автом.подтверждать замену имеющихся файлов и потом удалить архивы после распаковки
Желательно базировать на одном каком-то ехе-шнике (winrar или 7z)
Попробовал поиграться с этим кодом (http://forum.oszone.net/thread-227836.html), но простые переименование маски архива не помогло
kiripanda
19-09-2013, 23:14
"Рекурсивная распаковка" http://forum.wincmd.ru/viewtopic.php?t=14064
death7lord
20-09-2013, 00:32
kiripanda, так это же скрипт для Тотала..
kiripanda
20-09-2013, 01:49
%L – это файл-список элементов по одному на строку
FreePaul
20-09-2013, 02:50
Цитата death7lord: Собственно есть папка, в ней дофига других папок с раскиданными файлами и архивами в произвольном порядке....
Хотелось бы распаковать абсолютно ВСЕ архивы рядом (т.е. в папки с именами как у архивов) и автом.подтверждать замену имеющихся файлов и потом удалить архивы после распаковки
Желательно базировать на одном каком-то ехе-шнике (winrar или 7z)
Попробовал поиграться с этим кодом, но простые переименование маски архива не помогло »
ИМХО, автоматически подтверждать перезапись не придется, т.к. если все архивы с уникальными именами применительно к содержащей их папке и согласно условиям будут распаковываться так же в содержащую их папку, то и имена создаваемых папок, совпадающих с именами архивов, не приведут к конфликтам имен файлов.
Относительно задачи. Сейчас попробовал у себя на Win7 x86 + WnRAR 4.20. В папке, содержащей кучу подпапок с архивами, стандартными средствами Проводника Windows выполнил поиск по маске *.zip. После этого: Выделить все -> ПКМ -> WinRAR -> Извлечь каждый архив в отдельную папку.
То же можно повторить и по маске *.rar.
7zip у меня не установлен, но кажется, у него такое же меню появляется.
Пойдет?
P.S.
Кстати, подобным же образом можно распаковать все архивы из кучи папок в одну папку. Просто откройте второе окно проводника, создайте новую папку, откройте ее и перетяните ПКМ выделенные в поиске архивы в открытую новую папку. Появится всплывающее меню, содержащее такие же операции WinRAR (7zip)...
death7lord
20-09-2013, 14:03
kiripanda, путь исправил на свой, но нифига не получилось...
да и там вроде в самом тотате надо что-то донастраивать...
Foreigner
21-09-2013, 11:41
death7lord,
@echo off
setlocal
set "path=%path%;%programfiles%\7-zip"
pushd "C:\Your Start Folder" || goto:eof
for /f "tokens=*" %%i in ('dir /b /s /a *.zip *.rar *.7z') do (
7z x "%%i" -o"%%~dpni" -aoa
)
popd
death7lord
05-10-2013, 14:12
Foreigner, только смог проверить, работает, НО не удаляет после распаковки архивы
наперед уточню - удалять распакованные архивы, а не все подряд, т.к. сами архивы тоже могу содержать архивы %)
death7lord, Вам сложно самому добавить «&& del /f /q "%%i"» в строку с извлечением файлов?
Grabber2006
11-01-2020, 15:21
@echo off
setlocal
set "path=%path%;%programfiles%\7-zip"
pushd "C:\Your Start Folder" || goto:eof
for /f "tokens=*" %%i in ('dir /b /s /a *.zip *.rar *.7z') do (
7z x "%%i" -o"%%~dpni" -aoa
)
popd
Что надо изменить в строчке -o"%%~dpni", чтобы архивы распаковывались в папку с архивом, а не в отдельную папку с именем архива?
----------------------
Уже всё, разобрался. Надо убрать букву n, чтобы было так: -o"%%~dpi"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.