MultiArc
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Хм, мне казалось что tar под win нормально работает с gz, но проверив, получил разномастный ворох ошибок при различных конфигурациях при попытке получить список файлов. Рабочей оказалась связка zcat и tar из комплекта UnxUtils (понимает нормальные виндовые пути до файлов и не имеет зависимостей).MVV писал(а):Хотя бы консольный tar-архиватор подбери, аддон состряпать поможем.
Код: Выделить всё
zcat.exe busybox.tar.gz|tar -tvf -Распаковка тоже работает, только ключ "t" на "x" надо сменить
upd: С кириллицей полный швах
Хрень какая-то, а не вывод... С таким аддона не получится.
Здесь невозможно отделить имена ссылок... Где гарантия, что имя файла "[[", а не "[[ link to ["?
А против кодировки 1251 в мультиарке есть ключики...
Код: Выделить всё
-rwsr-sr-x root/root 683040 2017-03-31 21:16 [
-rwsr-sr-x root/root 0 2017-03-31 21:16 [[ link to [
-rwsr-sr-x root/root 0 2017-03-31 21:16 adjtimex link to [
-rwsr-sr-x root/root 0 2017-03-31 21:16 ar link to [
-rwsr-sr-x root/root 0 2017-03-31 21:16 arp link to [А против кодировки 1251 в мультиарке есть ключики...
Уже говорилось, что тотал не позволяет показывать симлинки в архивах как ссылки (нет такого атрибута). Т.е. они будут показываться как-либо (нулевой размер - на мой взгляд не самый удачный способ), но не как ссылки.
Далее, чтобы это всё работало через мультиарк, нужна консольная утилита, которая будет отображать содержимое архива так, как нужно, чтобы можно было прочитать вывод. Упомянутая выше не подходит, т.к. непонятно, как определить конец имени файла.
А для тестирования отображения кириллицы в тестовый архив нужно добавить файлы с русскими именами.
Далее, чтобы это всё работало через мультиарк, нужна консольная утилита, которая будет отображать содержимое архива так, как нужно, чтобы можно было прочитать вывод. Упомянутая выше не подходит, т.к. непонятно, как определить конец имени файла.
А для тестирования отображения кириллицы в тестовый архив нужно добавить файлы с русскими именами.
Та каша выдаётся при листинге симлинков (там в конце должно быть не "[" а "busybox"), обычные файлы в выхлопе отображаются нормально.Упомянутая выше не подходит, т.к. непонятно, как определить конец имени файла.
Код: Выделить всё
zcat.exe gzip.tar.gz|tar -tvf -
-rwsrwsrwx 0/0 000000 0000-00-00 00:00 tar.exe
-rwsrwsrwx 0/0 00000 0000-00-00 00:00 zcat.exeПри желании архив tar.gz можно создать под win - сначала заархивировать в tar через 7zip, а потом им же этот архив в gz.
Вот два архива с файлами с кириллицей, созданных под win и nix в utf8 и cp1251 -> utf8 (не знаю насколько нужно последнее, но решил заодно закинуть).
https://www.upload.ee/files/7107170/rus ... ar.gz.html
https://www.upload.ee/files/7107172/rus ... ar.gz.html
Повторю, это ненадёжный способ определения конца имени файла, т.к. файл может иметь такое окончание. Кроме того, мультиарк не позволяет определять конец файла по тексту, можно задать либо фиксированную длину, либо ++ в случае имени файла до конца строки.То что будет от даты файла + " " и до " link to [" и будет именами файлов
Если в предыдущий и виндовый ещё получается зайти простым аддоном, то в никсовом сплошной бред - там все имена имеют префикс ./... Ещё и 1251 какая-то неправильная (в листере видно).Вот два архива с файлами с кириллицей, созданных под win и nix в utf8 и cp1251 -> utf8 (не знаю насколько нужно последнее, но решил заодно закинуть).
Но похоже, что утилита всегда выводит в UTF-8, поэтому не видно русского даже в виндовом. Это хорошо видно, если направить вывод в файл.
Пример аддона:
Код: Выделить всё
[targz]
Description="tar+gz"
ID=1F 8B 08
IDPos=0
Extension=.gz
Archiver="tar.exe"
List="X:\Path\tar_gz_list.bat %AQA %O"
Format0=" +z+ yyyy-tt-dd hh:mm +n++"
UnixPath=1Код: Выделить всё
@"%~dp0\zcat.exe" %1 | "%~dp0\tar.exe" -tvf -Но, конечно, большие архивы открываются реально долго (даже на busybox.tar.gz заметно)... из-за того, что весь gz надо снимать, чтобы прочитать tar. Странная у линуксоидов мания к таким неудобным оберткам...
MVV
В WinRAR v5.50 появилась поддержка архивов LZ
Тестовый фал для проверки: https://www.upload.ee/files/7357998/tzd ... ar.lz.html
В WinRAR v5.50 появилась поддержка архивов LZ
Если не затруднит, то подскажи конфиг для поддержки LZ через WinRAR.5. Добавлена поддержка распаковки архивов .LZ, созданных упаковщиком Lzip.
Тестовый фал для проверки: https://www.upload.ee/files/7357998/tzd ... ar.lz.html
Lisabon
Как вариант:
И не забыть указать в wincmd.ini
Но, насколько я знаю, консольный RAR.exe умеет только RAR, а другие форматы умеет WinRAR.exe, который с гуём, который, в свою очередь, к Multiarc не подключить по очевидной причине.
Как вариант:
Код: Выделить всё
[RAR-5.x]
ID=52 61 72 21
IDPos=<SeekID>
SkipSfxHeader=1
Extension=rar5, lz
Description=RAR 5.x
Archiver=%COMMANDER_PATH%\Plugins\arc\Rar%PROCESSOR_ARCHITECTURE%.exe
BatchUnpack=1
Debug=0
Start="----------- --------- -------- ----- ----"
End="----------- --------- -------- ----- ----"
Format0=" aaaaaaa +z+ dd-tt-yy hh:mm n++"
List=%PQA l -- %AQA
Extract= %PQA e -y -scO {%S} -- %AQA @%LQ
ExtractWithPath=%PQA x -y -scO {%S} -- %AQA @%LQ
Test=%PQA t -y -scO {%S} -- %AQA
Delete=%PQA d -r -y -scO {%S} -- %AQA @%LQ
Add=%PQA a -y -ma -md128m -ed -oi:1048576 -s -t -scO {%S} %AQA @%LQ
Move=%PQA m -y -ma -md128m -ed -oi:1048576 -s -t -scO {%S} %AQA @%LQ
SkipLIST=1
;Код: Выделить всё
lz=196,%COMMANDER_PATH%\Plugins\wcx\MultiArc\Multiarc.wcx64Но, насколько я знаю, консольный RAR.exe умеет только RAR, а другие форматы умеет WinRAR.exe, который с гуём, который, в свою очередь, к Multiarc не подключить по очевидной причине.
Он даже с zip не работает, только с rar...imig73 писал(а):К сожалению да, консольный rar.exe ничего не смог сделать с lz.
Может, кому пригодится - я себе для lz, а также для LZ4 (хотел ещё lz5, но не нашёл такого архива для настройки/теста) и zst (про плагин для него знаю, но т. к. паковать ничего не собираюсь, то не нужен) приспособил это: https://github.com/mcmilk/7-Zip-zstd/releases
p.s. Если что, с Total7Zip (и скорей всего, с другими плагинами 7-Zip) - не работает. Кодеки оттуда работают с Total7Zip, но позволяют распаковывать только 7z архивы с извр. методами сжатия, но не сами lz, zst и т. п. + если используется Total7Zip, то tc7z.dll лучше не использовать - она, наоборот будет вредить.
MVV
Обнаружил проблему с редактированием архивов InstallShield в MultiArc 1.4.2.158.
Захожу через Data1.hdr или Data1.cab для удаления папок. Выделяю несколько папок и жму Delete, но могут не удалится папки, а могут удалится, но не все, а только одна папка. Происходит это весьма рандомно. Взял старую версию MultiArc от сюда и попробовал снова удалить папки. Папки удаляются.
P.S. Total Commander v9.0a 32-bit, Windows 8.1 64-bit.
Моя конфигурация MultiArc: https://www.upload.ee/files/7553560/MultiArc.rar.html
Редактируемый архив: https://www.upload.ee/files/7553561/Cre ... 2.rar.html
Можно ли поправить данную проблему?
Обнаружил проблему с редактированием архивов InstallShield в MultiArc 1.4.2.158.
Захожу через Data1.hdr или Data1.cab для удаления папок. Выделяю несколько папок и жму Delete, но могут не удалится папки, а могут удалится, но не все, а только одна папка. Происходит это весьма рандомно. Взял старую версию MultiArc от сюда и попробовал снова удалить папки. Папки удаляются.
P.S. Total Commander v9.0a 32-bit, Windows 8.1 64-bit.
Моя конфигурация MultiArc: https://www.upload.ee/files/7553560/MultiArc.rar.html
Редактируемый архив: https://www.upload.ee/files/7553561/Cre ... 2.rar.html
Можно ли поправить данную проблему?
Пардон, не заметил сразу.
Понял, в чём беда, это из-за фикса safe %F/%L expansion, я упустил вариант, когда команда вызывается отдельно для каждого файла. Спасибо, поправлю.
Добавлено спустя 37 минут:
Попробуй эту версию:
MultiArc 1.4.3.160 Beta
Исправил баг, заодно, глядя на твой конфиг, добавил псевдо-переменную $MULTIARC для поля Archiver конфига, чтобы можно было указывать путь относительно папки Мультиарка:
Понял, в чём беда, это из-за фикса safe %F/%L expansion, я упустил вариант, когда команда вызывается отдельно для каждого файла. Спасибо, поправлю.
Добавлено спустя 37 минут:
Попробуй эту версию:
MultiArc 1.4.3.160 Beta
Исправил баг, заодно, глядя на твой конфиг, добавил псевдо-переменную $MULTIARC для поля Archiver конфига, чтобы можно было указывать путь относительно папки Мультиарка:
Код: Выделить всё
Archiver="%$MULTIARC%\Modules\FreeArc\Arc.exe"