Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

MultiArc
Goto page Previous  1, 2, 3 ... 30, 31, 32
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sat Mar 02, 2024 00:25    Post subject: Reply with quote

Mellomann
Если нужны только просмотр и распаковка, то Total, вроде, и так это делает, разве нет? А на запаковку можно просто отдельную кнопку сделать.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1244

Post (Separately) Posted: Sat Mar 02, 2024 17:06    Post subject: Reply with quote

Помимо того, что 7-Zip 24.01 научился распаковывать Zstandard, есть плагины для 7-Zip, в частности Modern7z добавляет поддержку Zstandard (Автор тут публикует новости (там он известен как Aniskin, здесь - как небезысвестный Dec), так что Total7Zip вполне годный вариант.
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Mar 17, 2024 01:31    Post subject: Reply with quote

Orion9
Да, я знаю, что уже завезли чтение. Мне интересно именно для multiarc.wcx было. Вдруг кто игрался.

Skif_off
Так те форки 7zip играют в отсебятину, а не в соответствие стандартам. Они пытаются пихать zstd потоки в 7z или zip контейнеры, а не давать "обычный" zst файл на выходе.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sun Mar 17, 2024 12:57    Post subject: Reply with quote

Quote:
Вдруг кто игрался.

Я игрался только с torrentcheck:
https://sourceforge.net/projects/torrentcheck/
Правда сам не знаю зачем Smile Но вдруг как пример кому-то пригодится:
Multiarc.ini
Code:
[Torrent]
Archiver=%COMMANDER_PATH%\Plugins\arc\torrent\tor.bat
Description=Torrent
Extension=torrent
ID=64 34 3A, 64 37 3A, 64 38 3A, 64 31 33 3A
IDPos=0
Start="---"
Format0="    +z+ n++"
List="%PQA %AQA %O %E2"
ExtractWithPath=
Debug=0
BatchUnpack=0

tor.bat
Code:
CHCP 65001

"%~dp0torrentcheck.exe"  -n -t %1 > "%TEMP%\1"
"%~dp0u82a.vbs"

TYPE "%TEMP%\2"

u82a.vbs
Code:

Private Const adReadAll = -1
Private Const adSaveCreateOverWrite = 2
Private Const adTypeBinary = 1
Private Const adTypeText = 2
Private Const adWriteChar = 0

Const SystemFolder = 1, TemporaryFolder = 2
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")

Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)

Dim f, sFile

UTF8toANSI tempFolder & "\1", tempFolder & "\2"

Set f = fso.GetFile(tempFolder & "\2")

if f.Size < 1024 Then

   sFile = fso.OpenTextFile(f, ForReading, False, TristateFalse).ReadAll

   if InStr(1, sFile, "---------------", 1) = 0 Then

      aLines = Split(sFile, vbNewLine)
     
      if Ubound(aLines) < 3 Then
         MsgBox sFile, vbOKOnly + vbCritical, "Ошибка"
         sOut = "    " & "0" & " ! Error torrentcheck !"
      else     
         a3 = Split(aLines(2), " : ")
         if Ubound(a3) > 0 Then
         
             a4 = Split(aLines(3), " : ")
             a42 = Split(a4(1), " ")
     
             sOut = "    " & a42(2) & " " & a3(1)
         else
            MsgBox sFile, vbOKOnly + vbCritical, "Ошибка"
            sOut = "    " & "0" & " ! Error torrentcheck !"         
         end if
             
      end if
     
      Set fo = fso.OpenTextFile(f, ForAppending, True, TristateFalse) 
      fo.Write vbNewLine     
      fo.Write "--- ----------- ---------------------------------------------------------------" & vbNewLine
      fo.Write sOut
      fo.Close
         
   End If

End If

Set fso = nothing

Private Sub UTF8toANSI(ByVal UTF8FName, ByVal ANSIFName)
   On Error Resume Next
   Dim strText
   With CreateObject("ADODB.Stream")
       .Open
       .Type = adTypeBinary
       .LoadFromFile UTF8FName
       .Type = adTypeText
       .Charset = "utf-8"
       strText = .ReadText(adReadAll)
       .Position = 0
       .SetEOS
       .Charset = "windows-1251"
       .WriteText strText, adWriteChar
       .SaveToFile ANSIFName, adSaveCreateOverWrite
       .Close 
        If Err.Number <> 0 Then
           fso.CopyFile tempFolder & "\1", tempFolder & "\2"
        End if
   End With
End Sub

В принципе, через перенаправление вывода в текстовый файл с последующим его парсингом в скрипте можно сформировать приемлимый для MultiArc вывод любой консольной утилиты (если не важны юникодные имена файлов). Но в вашем случае, мне кажется, не стоит заморачиваться, т.к. Total и так работает с zstd (судя по всему, через UNRAR.DLL, хотя могу и ошибаться).
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Mar 17, 2024 21:06    Post subject: Reply with quote

Orion9
Работает через свои TCZSTD32.DLL и TCZSTD64.DLL, это я в курсе. Равно как и менюшки свои есть, их можно даже посмотреть в моей сборке (на рутрекере раздаю, но в этой теме приводить не буду, ибо варез).
Ну да ладно. Наверное, с облегчением можно констатировать факт, что сейчас уже действительно мало смысла прикручивать сабжа к мультиарку. Тем более, что сам zst формат не умеет ни в атрибуты, ни в >1 файла, ни во что вообще. Простой компрессор без контейнера, как это сделано во всяких там bzip, gzip, xz...
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Mon Mar 18, 2024 00:56    Post subject: Reply with quote

Раз пошла такая пьянка, завалялся у меня еще один пример, который так и не был доведен до ума. Так что сугубо в качестве примера: как заходить через ExifTool в файлы с мета-данными.

Multiarc.ini
Code:
[ExifTool]
Archiver=%COMMANDER_PATH%\Plugins\wlx\ExifToolView\exiftool.bat
Description=ExifTool
Extension=jpeg
ID=FF D8 FF, 38 42 50 53, 49 49, 4D 4D, 52 49 46 46, D0 CF 11 E0 A1 B1 1A, 4A 46 49 46, 89 50 4E 47, 47 49 46 38 39, 8B 4A 4E 47
IDPos=0
Start="---------------"
Format0=n++
List="%PQA %AQA %O"
ExtractWithPath=
Debug=0
BatchUnpack=0

exiftool.bat
Code:
SetLocal EnableExtensions
CHCP 866
cls

@echo off
@echo ---------------

"%~dp0exiftool.exe" -G -S %1
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 418

Post (Separately) Posted: Fri Nov 07, 2025 19:37    Post subject: Reply with quote

Есть приложение innounp home site, GitHub, которое продолжает развитие ранее одноимённого приложения innounp 0.5.
Сейчас столкнулся с проблемой при распаковке файлов/папок в названии которых содержится "пробел(ы)" при использовании такого конфига:
Code:
[InnoSetup - unp]
Description="InnoSetup"
Archiver="%$MULTIARC%\EXE\InnoSetup\innounp.exe"
ID=49 6E 6E 6F
IDPos=<SeekID>
Start="^--------------------------------------"
End="^--------------------------------------"
Format0="zzzzzzzzzz  yyyy.tt.dd hh:mm  +n++"
List="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %P -v -m %AQ"
Extract="ConPaste.exe %C /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %P -e -m -c%R %AQ @%LQ"
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %P -x -m -c%R %AQ @%LQ"
AskMode=0
BatchUnpack=1
Debug=1
IgnoreErrors=0
SearchForUglyDirs=0
SkipDirsInFileList=0
SkipEmpty=0
SkipLIST=1
SkipSfxHeader=1
UnixPath=0

Проблематика возникает в данном моменте "@%LQ", в листинг файл добавляются кавычки, которые innounp не требуются и он может извлечь файлы без них.
Если исключить в конфиге добавление кавычек в именах с пробелами, то возможно уже извлечь файлы, но до момента пока не пройти в папку в названии которой будет пробел.
В данном случае будет ошибка
Code:
---------------------------
Внимание
---------------------------
Похоже, при выполнении команды возникла ошибка, т.к. был получен код возврата 3:
 
ConPaste.exe /s /h\"d:\Download\TC_build\iZotope Trash 1.3.0\iZotope.Trash.v1.3.0-TCD.exe\" /ciZotope.Trash.v1.3.0-TCD.exe /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" D:\TOTALCMD\plugins\wcx\MultiArc\\EXE\InnoSetup\innounp.exe -x -m -c{app}\Presets\Trash Lite \"d:\Download\TC_build\iZotope Trash 1.3.0\iZotope.Trash.v1.3.0-TCD.exe\" @C:\Users\JenTOSO\AppData\Local\Temp\$mltwcx\lst64ED.tmp
 
Полученное значение выше допустимого. Пожалуйста, проверьте конфигурацию текущего типа в файле MultiArc.ini (в том числе параметр %Enn и опцию IgnoreErrors).
---------------------------
ОК   
---------------------------

В данной ошибке смущает вот этот момент
Code:
-c{app}\Presets\Trash Lite \

почему-то на конце через пробел появляется знак "\"
или наоборот, знак "\" появляется перед.
Code:
\"d:\Download\TC_build\iZotope Trash 1.3.0\iZotope.Trash.v1.3.0-TCD.exe\"

Проблема в конфиге, в самом плагине MultiArc или автору innounp требуется "допилить" парсинг листинга (чтобы кавычки тоже мог принимать во внимание или самостоятельно их исключать)?

Рядом с файлом lst64ED.tmp, появляется другой файл zha64EE.tmp, в котором скорее всего и есть причина ошибка
Code:

innounp - the Inno Setup Unpacker, Version 2.65.3 (06.11.2025)

Inno Setup archive:           Lite
Cannot open or read the specified file: "d:\Download\TC_build\iZotope Trash 1.3.0\Lite"
  ==> Не удается найти указанный файл


MultiArc 1.4.4.174
_________________
TC 11.56 combo, Windows 11 x64
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sat Nov 08, 2025 14:03    Post subject: Reply with quote

jentoso wrote:
Если исключить в конфиге добавление кавычек в именах с пробелами, то возможно уже извлечь файлы, но до момента пока не пройти в папку в названии которой будет пробел.

Что имеется в виду под исключением в конфиге: использовать мальнькую "l" вместо большой "L"? Если да, то у меня все работает.
jentoso wrote:
В данной ошибке смущает вот этот момент

Попробуйте совсем убрать "-c%R" из строки распаковки, и без этого ключа должно работать. Моя строка:
Code:
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -x -m %AQA {@%lQ}"

Я не уверен правда, что для всех файлов InnoSetup такая запись подойдет, возможен и обратный эффект. Надо проверять.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 418

Post (Separately) Posted: Sat Nov 08, 2025 14:31    Post subject: Reply with quote

Quote:
Что имеется в виду под исключением в конфиге: использовать мальнькую "l" вместо большой "L"? Если да, то у меня все работает.

Имелось ввиду вот эта часть конфига "@%LQ", где Q заключает в кавычки длинные имена с пробелами.
Новая версия innounp при работе с листнг-файлом не учитывает кавычки, они ей не требуются. Автор ответил, что автоматическое удаление кавычек в списке файлов в следующем обновлении реализует.
Quote:
Попробуйте совсем убрать "-c%R" из строки распаковки, и без этого ключа должно работать.

В этом нет необходимости
Quote:
-cDIR - specifies that DIR is the current directory in the installation
%R - Target subdirectory inside archive

_________________
TC 11.56 combo, Windows 11 x64
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sat Nov 08, 2025 18:04    Post subject: Reply with quote

jentoso wrote:
В этом нет необходимости

Ну, если у меня все работает, то может быть необходимость таки есть? )

jentoso wrote:
-cDIR - specifies that DIR is the current directory in the installation
%R - Target subdirectory inside archive

И?..

Я с утра тоже в справку заглядывал:
Quote:
%l - Filelist with short file names

Однако вместо списка с короткими путями получаются пути без кавычек.

Вообще-то я думал, что модификатор Q применяется только к путям передаваемых параметров (т.е. непосредственно к путям командной строки, а не путям в списке), но можно и так:
Code:
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -x -m %AQA @%LA"

Эта строка у меня тоже работает.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 418

Post (Separately) Posted: Sat Nov 08, 2025 18:42    Post subject: Reply with quote

Orion9
Code:
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -x -m %AQA {@%lQ}"

Code:
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -x -m %AQA @%LA"

Да, оба варианта рабочих. Все файлы/папки содержащие пробелы без проблем извлекаются.
Конечно есть еще одна проблемка, но здесь уже видимо ничего не поделать. Внутри есть файл, который в имени содержит такой символ

а видится в ТС и командной строке


Добавлено спустя 42 минуты:

Quote:
И?..

Я с утра тоже в справку заглядывал:


Quote:
Вообще-то я думал, что модификатор Q применяется только к путям передаваемых параметров (т.е. непосредственно к путям командной строки, а не путям в списке)


Вот и я в справку глянул и решил, что l вместо L не пойдёт, а вышло оказывается иначе
Quote:
Однако вместо списка с короткими путями получаются пути без кавычек.

Благодарю.
_________________
TC 11.56 combo, Windows 11 x64
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sun Nov 09, 2025 00:37    Post subject: Reply with quote

jentoso wrote:
Конечно есть еще одна проблемка, но здесь уже видимо ничего не поделать.

Увы, ничего. Только плуг переделывать, а кто этим займётся, MVV? Его профиль, как и профиль любого цифрового бога, который выполнил свою миссию на этом форуме на этой земле, давно загружен в виртуальное облако, где имеет возможность наслаждаться трехмерными голограммами и пленящим звуком Dolby Atmos Mr. Green
jentoso wrote:
Вот и я в справку глянул и решил, что l вместо L не пойдёт, а вышло оказывается иначе

Да это больше на баг тянет. Лучше использовать второй вариант с Q, а то не известно, где это может аукнуться. Просто я хотел посмотреть, будет ли формироваться список с короткими именами, а оказалось, что нет. Вообще справка довольно муторно написано, в свое время пришлось с ней несколько дней возиться, очень хотелось сделать рабочий конфиг на upx, который нигде не удавалось найти. В итоге сделал, но крышу чуть не сорвало.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 30, 31, 32
Page 32 of 32

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group