Рекурсивная распаковка архивов в Total Commander

Приветствую всех.

Хочу поделиться с вами одним удобным методом работы с архивами. Архивы сейчас используются повсеместно и массово, большое число форматов и размеров, в разных операционных системах. Причем и самих программ-архиваторов уже довольно немало. В моем же небольшом повествовании речь пойдет о использовании архиватора 7zip в связке с файловым менеджером Total Commander в Windows среде. Используя достоинства этих двух программ можно добиться интересных и практически полезных результатов.

В силу разных причин, у вас может возникнуть необходимость распаковать большое количество архивов, когда о «ручной» работе не может быть и речи, например, если архивов не сотни а тысячи. Скажу более конкретно — в моем случае несколько тысяч архивов лежали каждый в своем каталоге (библиотека файлов). А задача была такая: распаковать каждый zip-архив и входящие в него файлы положить в тот же каталог, где находится исходный архив, не создавая дополнительные подкаталоги.

Само собой, ходить по всей ветке суб-каталогов мы «ходить» не будем, а заставим это делать небольшой скрипт, оптимизированный специально для запуска из меню Total Commander.

tc1Рис. 01

Ниже представлен код нашего рабочего скрипта, который был найден на страницах форума wincmd.ru (ссылка на страницу оригинала):

@echo off &setlocal enableextensions &chcp 1251 >nul
rem Распаковка с помощью 7-Zip
set "Arc=%programfiles%\7-Zip\7z.exe"

goto :------------------------------------------------------------
rem Параметры: список "D:\куда\" -o
rem -o —— в отдельные папки с именами архивов
rem Пример параметров для TC: "%L" "%%userprofile%%\Мои документы\"
rem В одноимённые папки расположенные в пути запуска (или в текущем): "%L" -o
rem В одноимённые папки расположенные рядом с архивами: "%L" "%%~dpf" -o
:------------------------------------------------------------

set "Dest=" &set "cage="
if /i "%~2"=="-o" set "cage=Yes"
if /i "%~3"=="-o" set "cage=Yes"
if not "%~2"=="" if /i not "%~2"=="-o" set "Dest=%~2"
if not "%~3"=="" if /i not "%~3"=="-o" set "Dest=%~3"

if "%cage%"=="Yes" set "Dest=%Dest%.\%%~nf"
for /f "usebackq delims=" %%f in ("%~1") do (
title Unpacking "%%~nf"
"%Arc%" x -scsWIN -y -o"%Dest%." -- "%%f"
)

Как видно, код относительно несложный, доступный для изучения при желании любому консольному гику. Копируем содержимое в окно Notepad и сохраняем с расширением *.CMD в удобное место.

Если у вас еще не установлен вышеупомянутый архиватор — самое время это сделать. скачав его с официального сайта.

Теперь открываем TotalCommander и правой кнопкой мышки кликаем на панели с кнопками, выбрав пункт «Изменить».

tc2Рис. 02

В открывшемся окне жмем «Добавить» и в шаблон новой «кнопки» вписываем:

полный путь до нашего скрипта (c:\bin\cmdcollection\7z-unp2.cmd)
параметры передаваемые скрипту
картинка для кнопки в панели TC

tc3Рис. 03

Нажимаем ОК.

Далее, открываем каталог с нашими архивами, вызываем диалог поиска (ALT+F7) и ищем архивы по маске:

tc4Рис. 04

Нажимаем «Файлы на панель», в результате чего все найденные файлы у нас оказываются в одном окне в независимости от расположения внутри дерева каталогов и под-каталогов.
Выделяем все (CTRL+A) и жмем на нашу новую кнопку (с картинкой «DOS» справа).

tc5Рис. 05

Если все шаги до этого были сделаны без ошибок, то будет выполнена разархивация каждого найденного архива, а содержащиеся в архиве файлы будут записаны в каталог с исходным архивом.

tc6Рис. 06

tc7Рис. 07

Поведение архиватора меняется подстановкой нужных параметров в соответствующем поле диалога настройки кнопки в TC, а сами параметры приведены в комментарии к скрипту.

Надеюсь этот небольшой «костыль» окажется кому-то весьма полезен в жизни или по работе.

Удачи!

Источники:

http://forum.wincmd.ru/viewtopic.php?t=14064&postdays=0&postorder=asc&&start=0
http://forum.wincmd.ru/viewpost.php?p=67240
http://forum.wincmd.ru/viewtopic.php?t=13436&start=30&postdays=&postorder=&highlight=

Share
Запись опубликована в рубрике ЭВТ ИТ с метками , , , , , , , , , , , , , , , , , , , . Добавьте в закладки постоянную ссылку.

6 комментариев на «Рекурсивная распаковка архивов в Total Commander»

  1. Artisanvdw говорит:

    bride, Julie d’Angenne.

  2. Anikanesk говорит:

    Пpивeт!
    Βозможнo, мoе соoбщение cлишкoм cпeцифично.
    Ηo мoя cтаршaя сecтрa нашла здеcь зaмечатeльнoгo мужчинy, и у ниx прeкрacныe отношeния, a кaк нaсчет мeня?
    Mне 24 лeт, Aникa, из Чexии, aнглийский язык тoжe знaю.
    И… лyчшe cкaзaть cpазу. Я бисекcуaльна. Я не peвнyю к дрyгой жeнщине… оcобенно eсли мы зaнимaемcя любовью вмеcте.
    Αx дa, я очень вкycно готовлю! И я люблю не тoлько готoвить ;))
    Я нacтоящaя девyшка и ищy сepьезные и горячиe отношения…
    В любoм cлyчaе, вы можетe нaйти мoй пpофиль здеcь: http://firehousibecent.ga/item-68296/

  3. Isabellasl говорит:

    Πpивeт вcем, рeбятaǃ Я знaю, моe соoбщeние мoжeт быть слишкoм кoнкpетным,
    Но мoя сеcтpа нaшлa хopошего мyжчину, и oни пожeнилиcь, а кaк насчeт мeня?ǃ 🙂
    Mнe 25 лет, Изабeлла, из Pyмынии, тaкже знaю английский и нeмецкий языки
    И… у меня специфичecкoe зaбoлеваниe, имeнуемoе нимфoманией. Ктo знает, чтo это такoe, мeня пoймут (лучшe скaзать сpазу)
    Ах да, я очень вкyснo гoтовлюǃ а я люблю нe толькo гoтовить ;))
    Я настоящaя дeвyшка, не проcтитyтка, ищy ceрьeзных и гopячиx отношений…
    Β любом cлyчаe, вы можете нaйти мой профиль здecь: http://bhanobinouv.ga/idm-90651/

  4. Feederivn говорит:

    consists of the book itself

  5. EOTechkio говорит:

    Europe, and in Ancient Russia

  6. Rigidrpk говорит:

    Europe, and in Ancient Russia

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *