[Util] Пакетная упаковка

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

[Util] Пакетная упаковка

Сообщение aLexx »

Вот решил выложить на суд широкой общественности утилитку, разработанную несколько лет назад.
Сам юзаю её постоянно в полный рост.
Скриншот:
http://alexrudin.narod.ru/tc/img/packdir.gif

Принцип работы. Есть несколько каталогов, которые надо упаковать. Ессно, можно при упаковке
включить опцию "Отдельные архивы для каждого...", но в этом случае, для того, что бы войти в
архивированный каталог, надо вначале открыть (войти в) архив, а потом уже можно открыть и сам
каталог. Пример: если таким образом сжать кучку плагинов ТС, то автоустановка плагинов в этом
случае, конечно, не сработает. Т.е., надо сперва войти в каждый нужный каталог, отметить всё,
а потом уже упаковывать. Этим и занимается моя утилитка.

В работе используются консольные версии архиваторов: 7zip (4.44b), Ace (2.60) и Rar (3.70b2).
Любой архиватор можно выключить из работы 3 способами:
1. Использовать кнопку соответствующего архиватора при старте утилиты. При следующем старте
эта кнопка будет опять включена.
2. Переименовать соответствующий архиватор. Тогда его кнопка будет задизейблена. Вернув ему
прежнее имя, мы опять включаем его в работу.
3. Удалить архиватор.

Включенный чек-бокс "Проверка длины архивов" означает, что после упаковки будет выбран самый
короткий архив, остальные удалятся. С "Удалить файлы после упаковки", я думаю, всё ясно. :)
Кстати, 7zip отрабатывает два раза: методы LZMA И PPMd. Из полученных архивов остаётся тот,
что короче.

PS. Архиватор Arj, к сожалению, не выдержал конкуренции. Из 14653 архивов (файло всяко разное,
тут я брал числом, что были и тексты, и картинки, и всякие документы и исполняемые файлы):
7zip - 11409 шт. (77,9 %); Ace - 1989 шт. (13,5 %); Rar - 1165 шт. (8,6 %).
Так вот, на долю arj выходило по-любому менее 3 %. Только время терять на упаковку.

PSS. Если кто будет юзать эту утильку (не приведи Господь!), покорнейше прошу вести статистику
и докладывать её здеся.
Последний раз редактировалось aLexx Вт июл 03, 2007 22:18, всего редактировалось 6 раз.
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Алё, народ, неужто никто не попробовал?...
Откликнитесьь!
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Обновил архиваторы: 7zip (4.45b) и Rar (3.70b8).
Если про Rar сказать нечего (упаковка практически не изменилась), то по 7zip скажу следующее:
скорость работы возросла и улучшена степень сжатия, хоть и немного (на 1-2%).
pajvela
Сообщения: 2
Зарегистрирован: Вт фев 22, 2005 06:15

Сообщение pajvela »

aLexx, вы забыли упомянуть как вашу утилиту привязать к ТС...
Параметры %L, %P, etc не работают.
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

А она никаким боком к ТС не приязывается... :(
Совершенно самостоятельная прога. Служит только для упаковки.
Упаковывает всё, что ей подсунешь в еённый каталог.
Аватара пользователя
Sam Dark
Сообщения: 484
Зарегистрирован: Пн апр 25, 2005 15:55
Откуда: Voronezh, Russia
Контактная информация:

Сообщение Sam Dark »

А если попробовать привязать?
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Хм-м-м... Становится интересно. Надо попробовать.
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Так-с, готово. Прикрутил коммандную строку. Параметры:

PackDir.exe "sourcedir" ["destinationdir"] [-r] [-d] [-c] [-7z] [-7lzma] [-7ppmd] [-ace] [-rar]

"sourcedir" - Обязательный. Каталог, где находятся каталоги (тавтолог... :)), предназначенные для упаковки.
"destinationdir" - Необязательный. Каталог, куда сбрасывать готовые архивы. Если отсутствует, то архивы
будут писаться в "sourcedir". Кавычки в путях ОБЯЗАТЕЛЬНЫ!!! И пробел между ними.
Ключи (необязательные, могут отсутствовать):
-r[un] -- Автоматически запустить утильку после просчёта всех директорий;
-d[el] -- Отключить удаление исходных каталогов (по умолчанию включено);
-c[hk] -- Отключить проверку на длину архивов (по умолчанию включено);
-7z[ip] -- Отключить архиватор 7zip;
-7l[zma] - Отключение упаковки 7zip методом LZMA;
-7p[pmd] - Отключение упаковки 7zip методом PPMd.
-ace -- Отключить архиватор ACE;
-rar -- Отключить архиватор RAR.

Если имеются оба ключа [-7lzma] [-7ppmd], то это будет равнозначно ключу
-7z[ip] - Отключение упаковки 7zip.

Кнопка на панели ТС:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Addon\PackDir\PackDir.exe"
"%P" "%T" -r
%COMMANDER_PATH%\Addon\PackDir\PackDir.exe
Пакетная упаковка каталогов


-1

Здесь в параметрах комм. строки только пути:
"%P" - панель, где стоит курсор;
"%T" - противоположная панель;
и ключ автозапуска -r[un]. По вкусу каждый может поставить другие ключи и свою иконку.
Напоминаю, что кавычки вокруг %P и %T ОБЯЗАТЕЛЬНЫ!!! И пробел между ними. Также пробелами
разделяются все ключи.
Также добавлена фишка: при использовании ключа -r[un], если при нажатии кнопки "PackDir"
на панели ТС держать нажатым SHIFT, автозапуск блокируется.

Ессно, стопроцентно, полно глюков. Те, что я выловил за 3 дня, пофиксил.
Просьба потестировать в полный рост, особенно упаковку 7zip на разном объёме ОЗУ.
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Итак, новая версия - PackDir v2.1:
Добавлен обратный отсчёт времени. Конечно, приблизительный, но всё же.

PS. Если в упаковываемом каталоге находится только один файл какого-либо дистрибутива
(типа, "setup.exe" или "install.exe"), можете не заморачиваться с моей утилитой. Всё
равно, архив, созданный штатным зипом ТС, будет короче!

PSS. Заметил глюк:
Заголовок окна изменяется по мере того, как продолжается упаковка (имя текущего каталога
и какой он по счёту из общего числа). Но - в панели задач оно не меняется! Если нажать
"ALT+TAB", то увидим 2 значка "PackDir". Один значок ведёт на изменяемое окно, как и
положено, а второй - на окно, которое было при старте программы (оно же отображается и
в панели задач). Типа, привидение какое-то или фантом. Причём, что интересно, это дело
возникает только после начала упаковки второго каталога, т.е., если упаковываемый каталог
один, то всё в порядке. Значит, что-то не в порядке с переименованием формы "PackDir"...
Пока не нашёл, как это убрать. :(
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Обновился "PackDir" до версии 2.2
Брать здесь (680 кб):
http://alexrudin.narod.ru/tc/Other-Util/PackDir_22.rar

Убраны почти все глюки, добавлена документация для консольных архиваторов и самой проги.
test1024
Сообщения: 76
Зарегистрирован: Чт ноя 09, 2006 17:12

Сообщение test1024 »

А можно без архиваторов. Они у меня все есть.
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

ОК. Готово. Лежит здесь (120 кб):
http://alexrudin.narod.ru/tc/Other-Util/PackDir.rar
_Johm
Сообщения: 119
Зарегистрирован: Вс май 14, 2006 20:03

Сообщение _Johm »

Важная тема про такой способ архивирования. Часто необходим, но как собирать архив без сжатия?
и в zip?
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Не совсем понял... Что значит без сжатия?
Если для того, что бы отрабатывал "pluginst.inf", то оно с любым типом архивов работает!
А насчёт ZIP? Включить консольку?
_Johm
Сообщения: 119
Зарегистрирован: Вс май 14, 2006 20:03

Сообщение _Johm »

не для плагинов Total
для упаковки, к примеру, mp3-файлов. Чтобы кол-во файлов было на пару порядков поменьше, есть плееры которые читают из архивов.

Без консоли, через кнопку Total Commander
Упаковка в режиме "без сжатия" rar'ом, но в тип zip (zip непринципиально)
Можно?
Ответить