Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Распаковка ВСЕХ архивов в папку с тем же именем (http://forum.oszone.net/showthread.php?t=268417)

death7lord 19-09-2013 18:16 2220556

Распаковка ВСЕХ архивов в папку с тем же именем
 
Собственно есть папка, в ней дофига других папок с раскиданными файлами и архивами в произвольном порядке....
Хотелось бы распаковать абсолютно ВСЕ архивы рядом (т.е. в папки с именами как у архивов) и автом.подтверждать замену имеющихся файлов и потом удалить архивы после распаковки
Желательно базировать на одном каком-то ехе-шнике (winrar или 7z)

Попробовал поиграться с этим кодом, но простые переименование маски архива не помогло

kiripanda 19-09-2013 23:14 2220730

"Рекурсивная распаковка" http://forum.wincmd.ru/viewtopic.php?t=14064

death7lord 20-09-2013 00:32 2220779

kiripanda, так это же скрипт для Тотала..

kiripanda 20-09-2013 01:49 2220800

%L – это файл-список элементов по одному на строку

FreePaul 20-09-2013 02:50 2220807

Цитата death7lord:
Цитата:

Собственно есть папка, в ней дофига других папок с раскиданными файлами и архивами в произвольном порядке....
Хотелось бы распаковать абсолютно ВСЕ архивы рядом (т.е. в папки с именами как у архивов) и автом.подтверждать замену имеющихся файлов и потом удалить архивы после распаковки
Желательно базировать на одном каком-то ехе-шнике (winrar или 7z)
Попробовал поиграться с этим кодом, но простые переименование маски архива не помогло »
ИМХО, автоматически подтверждать перезапись не придется, т.к. если все архивы с уникальными именами применительно к содержащей их папке и согласно условиям будут распаковываться так же в содержащую их папку, то и имена создаваемых папок, совпадающих с именами архивов, не приведут к конфликтам имен файлов.

Относительно задачи. Сейчас попробовал у себя на Win7 x86 + WnRAR 4.20. В папке, содержащей кучу подпапок с архивами, стандартными средствами Проводника Windows выполнил поиск по маске *.zip. После этого: Выделить все -> ПКМ -> WinRAR -> Извлечь каждый архив в отдельную папку.

То же можно повторить и по маске *.rar.

7zip у меня не установлен, но кажется, у него такое же меню появляется.

Пойдет?

P.S.
Кстати, подобным же образом можно распаковать все архивы из кучи папок в одну папку. Просто откройте второе окно проводника, создайте новую папку, откройте ее и перетяните ПКМ выделенные в поиске архивы в открытую новую папку. Появится всплывающее меню, содержащее такие же операции WinRAR (7zip)...

death7lord 20-09-2013 14:03 2220975

kiripanda, путь исправил на свой, но нифига не получилось...
да и там вроде в самом тотате надо что-то донастраивать...

Foreigner 21-09-2013 11:41 2221344

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 2228993

Foreigner, только смог проверить, работает, НО не удаляет после распаковки архивы
наперед уточню - удалять распакованные архивы, а не все подряд, т.к. сами архивы тоже могу содержать архивы %)

Iska 05-10-2013 17:16 2229087

death7lord, Вам сложно самому добавить «&& del /f /q "%%i"» в строку с извлечением файлов?

Grabber2006 11-01-2020 15:21 2904531

Код:

@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"


Время: 10:04.

Время: 10:04.
© OSzone.net 2001-