Упаковка файлов одной кнопкой по шаблону

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

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

Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Упаковка файлов одной кнопкой по шаблону

Сообщение Lnk »

Задам пожалуй довольно сложный вопрос, может кто ответит)
Есть такая команда cm_PackFiles, при нажатии выходит меню с множеством вариантов архивирования. Я пользую обычно 3 из них, каждая с прописанными настройками, а именно
zip, степень сжатия ноль+удалить исходные файлы после упаковки;
rar, степень сжатия макс(прописано в соответствующей программе winrar)+удалить исходные файлы после упаковки;
lst, используется плагин DirDisk Extended x64, выставлено list archives.

Как бы прописать на них по кнопочке, чтоб брали настройки готовые или прописанные вручную?
Самое важное - lst, чтоб кнопка выделяла все в каталоге и архивировала в этот формат, если будет пример как сделать с ним, возможно по такому шаблону я сделал бы все остальные кнопки.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk писал(а):lst, чтоб кнопка выделяла все в каталоге и архивировала в этот формат

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

TOTALCMD#BAR#DATA
cm_SelectAllBoth,em_PackFilesLst

wcmicons.dll,30
Упаковать всё в lst-файл в другую панель


-1
Пользовательская команда в usercmd.ini:

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

[em_PackFilesLst]
cmd=cm_PackFiles
param=/GE="lst"
Lnk писал(а):множеством вариантов архивирования
Используйте параметры для команды cm_PackFiles:
All the options shown in the dialog box can be passed as parameters (starting with a slash). Each of the checkbox options takes an optional parameter 1 or 0.
T="target name": path and file name of the archive. Use T="" or T="." to pack to source directory with default name, or T="c:\path\." to pack to given path with default name.
D: Also pack path names (only recursed)
R: Recursively pack subdirectories
S: Multiple disk archive (ZIP, ARJ, RAR, ACE)
M: Move to archive
X: Create self extracting archive
O0..4,7,8: Overwrite options, numbers as in the F5 copy dialog box. 5,6 and 9 are not supported.
A: Create separate archives, one per selected file/dir
B: Leave out base directory when packing folders
C: Encrypt
P="password": provide password (needs /C option)
G: Go: Start copying immediately
E="extension": packer type as shown in the pack dialog
Z0..10: ZIP compression rate, 0=stored, 10=Deflate64. Only used for ZIP, GZ and TGZ (the latter two 1..9 only)
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa,
шикарно, работает идеально! огромное спасибо!

На zip архив вот так получилось

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

[em_PackFilesZip]
cmd=cm_PackFiles
param=/GE="zip" /M

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

TOTALCMD#BAR#DATA
cm_SelectCurrentExtension,em_PackFilesZip

wcmicons.dll,38
Упаковать в zip-файл в другую панель


-1
и вроде из настроек берет компрессию, но если что можно проставить дополнительно /Z0.

СПАСИБО! теперь можно с любым архивом кнопки делать я думаю.
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

sa
А чтоб вызывать диалог архивирования и там автоматически галочка "Удалить исходные файлы" стояла, так можно сделать этими командами?
(Сейчас у меня просто сделано "У&qалить..." в файле WCMD_RUS.LNG и ставлю галочку по Ctrl+Q, т.к. клава по умолчанию на латыни и мышью я не люблю пользоваться)
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

790
Наверное, ключ M надо указать в команде упаковки:
cm_PackFiles /M
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

sa
Да. Спасибо, так работает.

Только 2 расширения, над которыми я сначала издевался, теперь пакуются только как pack.zip или с именем родительского каталога. Я уже всё это новое удалил и в usercmd.ini тоже. Где он там себе это прописал я не могу найти.
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

790
Если использовать только ключ M, то остальные установки будут по умолчанию. Для конкретного расширения придётся указывать ещё и ключ E.
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

sa
Так не в расширении дело, а в имени архива.zip . C ключом /М или без него (вообще без ключей), у меня теперь для всех файлов .xls с любым именем по умолчанию предлагается pack.zip . Хотя Т="" нигде нет или я не могу найти.
Только внутрений упаковщик.
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

790 писал(а):теперь для всех файлов .xls с любым именем по умолчанию предлагается pack.zip
И перезапуск TC не помогает?
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

sa
В общем выяснилось, любые файлы с расширениями, которые есть в списке архиваторных плагинов, предлагается упаковывать с именем родительского каталога или pack.zip, если в корне.
Как это включилось и где отключить, я не понимаю.
Удалил все wcx-плагины, конечно, стало нормально. Вернул для пробы 1 - опять всё тоже самое.
Перезапуск, перезагрузка, вернул старый ТС-10.52 - не помогает.
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

Подобное поведение устраняется, если в настройках wcx-плагинов убрать галочку с "Может модифицировать архивы". Тогда всё нормально: ТС предлогает имя файла для архива.zip при упаковке одного файла. Но если упаковывать zip в zip, то опять - только родительский каталог (я понимаю, что такого не требуется и обычно упаковывается много разных файлов вместе с zip`ом в другой общий zip).
Но ведь как-то и раньше работало нормально, не мог же я такого не заметить за столько лет?
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

У меня всегда вроде бы предлагалось имя родительского каталога. Если zip в zip(или любой другой архив) то тоже родительский.
Если мне надо на одиночный архив имя файла я жму на правую кнопку мыши и выбираю добавить к {имя файла}.7z. С другими установленными архиваторами также можно.
Если же нужно именно через тотал, то ставлю галочку "отдельные архивы для каждого выбранного каталога", тогда каждому архиву присвоится имя файла. Кстати как я понимаю в параметрах команды cm_PackFiles это ключ /A .
Кому как, а меня устраивает вполне).
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

Lnk
/A "отдельные архивы для каждого выбранного каталога", ну так и есть, проверил.
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

sa
А есть ли такой набор ключей для закачки на FTP-сервер (хочется, чтоб в фоне по умолчанию или только для файлов >100 mb), для распаковки файлов (пока только "вычислил" ключ /S для копирования из архива в папку с именем архива) ?
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

790
Могу предложить только кнопку (от petermad) со ссылкой на раздел справки по командам с ключами:

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

TOTALCMD#BAR#DATA
hh.exe %COMMANDER_PATH%\TOTALCMD.CHM::dlg_choosecommand.htm

%COMMANDER_PATH%\TOTALCMD.CHM
Open Help for Choose Commands (cm_commands with parameters)

0
-1
Ответить