Описание команды


joinz

Склеить небольшие файлы.

joinz=%L,%WL||cliplist||LISTF<>||PS<>||FOLDC<>||FOLDM<>||LISTC<>||FLST<>||$var_aa||$GLOBALNAME||Path, ||owrite<>, ||upd<>, ||progres<>, ||Dialogs, ||<info>, ||<xinfo>, ||cntlr<>, , ||delim<>, ||code<>

Параметры:

1-й обязательный параметр. Может иметь несколько вариантов:
%L,
%WL
Список выделенных файлов. Также может использоваться путь к файлу списка полных путей файлов %P%N. см. Дополнение №7 или с:\List.txt
cliplistСписок полных путей объектов из буфера обмена.
LISTF<>Список заданных объектов. см. Дополнение №22.
PS<>Список объектов каталога. см. Дополнение №22.
FOLDC<>Список объектов содержимого каталогов. см. Дополнение №22.
FOLDM<>Список выделенных объектов и всех объектов в подпапках. см. Дополнение №22.
LISTC<>Список объектов из выделенных без дубликатов. см. Дополнение №22.
FLST<>Смешанные списки объектов по заданному списку. см. Дополнение №22.
$var_aaМассив. Переменная $var_a... - массив путей, созданный в команде exect.
$GLOBALNAMEМассив. Список путей глобальной переменной см. Дополнение №23.
2-й обязательный параметр.
PathПуть создания общего файла.
Path//Flag(//Name.Ext//Insert). Подпараметры разделяются символами //
  Может быть от 2-х (обязательных) до 4-х подпараметров, где:
  Path - путь назначения, где создавать файл.
  Flag :
    0 - не перезаписывать имеющиеся объекты. Добавление счётчика. (по умолчанию).
    1 - перезаписывать имеющиеся объекты.
    2 - дописывать, если существует.
    3 - добавление счётчика к целевому пути, если он существует.
    4 - пропустить при совпадении имени объекта.
    9 - проверка создания файла с помощью параметра owrite<>
  Name.Ext - имя и расширение создаваемого файла.
  Insert - добавление к базовому имени.
    Если Insert начинается с ** то последующая строка заменяет расширение.
    Если Insert начинается с ++ то последующая строка добавляет расширение.
Если Path=x, Name=x, Ext=x , то путь/имя/расширение берётся из пути оригинального файла.
Может использоваться подпараметр rndm - информация случайных данных см. Дополнение №30
Если 2-й параметр равен нулю "0", то файл создаваться не будет.
Дополнительные параметры:
owrite<>Перезапись. Параметр owrite<Number>, где Number:
 Описание
  0 - не перезаписывать существующий файл, добавляется счётчик.
  1 - перезаписывать, если файл существует.
  8 - пропустить при совпадении имени объекта.
  10 - если файл существует - перезаписывать; пропускать, если подобный файл не существует по целевому пути.
  11 - если файл существует - добавлять счётчик; пропускать, если подобный файл не существует по целевому пути.
  12 - если файл существует, то к целевому файлу добавляется счётчик.
  13|Ext - если файл существует, то к целевому файлу добавляется заданное расширение Ext.
  14|Name - если файл существует, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути.
  15|StringName - если файл существует, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.
upd<>Обновление панели.
  Описание
Параметр upd<Number>, где Number - значение обновления панели(ей) Total Commander:
  1 - обновить активную панель.
  2 - обновить обе панели, вернуться в активную.
  3 - обновить другую панель, вернуться в активную.
  4 - обновить активную панель, перейти в другую.
  5 - обновить другую панель, остаться в другой.
  6 - обновить обе панели, остаться в другой.
  7 - не обновлять (по умолчанию, т.е. если параметр не прописан, то панели не обновляются).
progres<>Прогресс бар. Параметр progres<> - если указан, то при операции будет запущен прогресс бар.
Учитывается ключ MsBoxAtTheCompletion в TCIMG.ini в секции [Setting].
DialogsДиалоги. см. Дополнение №18
  Описание
Различные параметры диалогов.
  [input] - диалог ввода информации в InputBox.
  [richinput] - диалог ввода информации в RichInputBox.
  [combo] - диалог выбора информации в ComboBox.
  [group] - диалог выбора информации в GroupBox.
  [check] - диалог выбора информации в CheckBox.
  [edits] - диалог выбора информации в EditBox.
  [sfold] - выбор каталога.
  [zfold] - выбор каталогов.
  [sopen] - выбор файла для открытия.
  [ssave] - выбор файла для сохранения.
  [sicon] - диалог просмотра и выбора значка.
  [msgbx] - окно сообщения MsgBox.
  [updwn] - диалог выбора числовой информации UpDown.
  [image] - диалог выбора изображения.
  [elect] - диалог выбора файлов и папок.
...и другие диалоги.
<info>Получение различной информации. см. Дополнение №10.
<xinfo>Получение различной информации. см. Дополнение №10.
  Аналог параметра <info>, имеет возможность внутри параметра использовать параметр <info>
  Пример: <xinfo=o450<info=f50FilePath//>//>
cntlr<>Счётчик. При совпадении имён:
  0 - счётчик слева.
  1 - счётчик справа (по умолчанию).
Дополнительные параметры для склеивания текстовых файлов:
delim<>Разделитель. Параметр delim<Delimeter(!!Mode)>, где:
  Delimeter - строка-разделитель между содержанием текстовых файлов.
  Mode [необязательный] - режим вставки разделителя:
    0 - в начало содержимого каждого файла (по умолчанию).
    1 - в конец содержимого каждого файла.
    2 - в начало и конец содержимого каждого файла.
    3 - между содержимым файлов.
  В разделителе могут использоваться
• Дополнительные символы, которые можно использовать в строке: "@CR" - Символ возврата каретки, Chr(13), "@LF" - Символ перевода строки, Chr(10), "@CRLF" = @CR & @LF, "@TAB" - Символ Tab, Chr(9).

• Если в команде(ах) необходимы кавычки, то используются две одинарных кавычки (апострофа) '' , если в команде необходим пробел - используются два символа тильды ~~.

-• Для специальных знаков могут использоваться Коды ASCII символов и функции Chr() и ChrW() см. Дополнение №26

cliptext - в любом месте тег cliptext будет заменён содержимым буфера обмена.

<info> - информация переданная параметром см. Дополнение №10

GLOBALNAME - данные, переданные глобальными переменными. см. Дополнение №23

• Счётчики enum[] и tnum[] см. Дополнение №24
code<>Кодировка. Параметр code<Number>, где Number:
  0 - ANSI 1251.
  1 - UTF-16 LE 1200.
  2 - UTF-16 BE 1201.
  3 - UTF-8 с BOM.
  4 - UTF-8 без BOM.
  По умолчанию кодировка первого текстового файла.

Примечания:

Один из вариантов использования: можно спрятать архивы внутри jpg изображения. Для этого в списке изображение должно быть первым, а архивы (к примеру rar) последующими. Создастся склеенный файл jpg (большего размера), который так же будет функционировать, но в нём будут находится и заданные архивы. Извлечь архивы можно через архиватор или переименовать расширение jpg в rar и с помощью Total Commander распаковать (войти в файл как в папку)...

Команда имеет возможность передавать другим командам информацию через именные глобальные переменные. см. Дополнение №23

Имя переменнойОписание
GLOBALJOINZ0массив входных данных (список исходных путей файлов для объединения)
GLOBALJOINZмассив выходных данных (в первой ячейке путь созданного общего файла, во 2-й размер файла в байтах)
GLOBALJOINZ1массив выходных данных (список путей файлов, вошедших в объединённый файл)
GLOBALJOINZ2массив выходных данных (список путей объектов, которые не вошли в объединение)

См. также:

exbnf, exbns, joinb, joinf, maskx, maskz, reszf, reszs, sdupl, splis, split

Примеры:
 Как создать кнопку?

global joinz=%WL||"%t"//9//Summa.txt||delim<@CRLF!!3>||owrite<13|xxx>||progres<>||upd<3> GLOBALJOINZ0<a> GLOBALJOINZ<a> GLOBALJOINZ1<a> GLOBALJOINZ2<a> ;; склеить текстовые файлы активной панели с заданным разделителем и создать полученный файл в другой панели именем Summa.txt и получить списки результатов (если файл существует, то целевому файлу добавляется расширение xxx)

global joinz=PS<"%p"//1>||"%t"//0//Summa.txt||progres<>||upd<3> GLOBALJOINZ0<a>, GLOBALJOINZ<a> ;; склеить все файлы активной панели и создать полученный файл в другой панели именем Summa.txt и получить списки результатов

imgpr=1 slist=FOLDM<%WL//-2//-1> <FOR> 1 <TO> GLOBALSLIST<0> joinz=PS<GLOBALSLIST<:INDEX:>//1>||%P%N//2//<info=o73GLOBALSLIST<:INDEX:>//>.txt <NEXT> delss=$GLOBALSLIST||1 ;; склеить все файлы каждой подпапки выделенных папок с размещением результирующих файлов (с именем родительской папки, с дописыванием при совпадении) в 1-м уровне выделенных папок с последующим удалением всех подпапок

joinz=%WL||"%p"//0//"%O-@<info=s47>.%E" ;; склеить бинарные данные выделенных файлов, и создать полученный файл в другой панели именем файла под курсором + системное время

joinz=%WL||"%t"//0//%N ;; склеить бинарные данные выделенных файлов, и создать полученный файл в другой панели именем файла под курсором

joinz=%WL||"%t"//0//Summa.txt||delim<@CRLF=======@CRLF!!3>||progres<>||upd<3> ;; склеить текстовые файлы активной панели с заданным разделителем и создать полученный файл в другой панели именем Summa.txt

joinz=%WL||"%t"//0//Summa.txt||delim<@CRLF=======@CRLF>||code<4>||progres<>||upd<3> ;; склеить текстовые файлы активной панели с заданным разделителем, кодировкой и создать полученный файл в другой панели именем Summa.txt

joinz=%WL||"%t"//1//%N ;; склеить бинарные данные выделенных файлов, и создать полученный файл в другой панели именем файла под курсором (перезаписывать, если существует)

joinz=%WL||"%t"//1//%N||progres<> ;; склеить бинарные данные выделенных файлов, и создать полученный файл в другой панели именем файла под курсором (перезаписывать, если существует) + отображение прогресс бара

joinz=%WL||"%t"//2//%N ;; склеить бинарные данные выделенных файлов, и создать полученный файл в другой панели именем файла под курсором (дописывать, если существует)

joinz=%WL||"%t"//2//%N||progres<> ;; склеить бинарные данные выделенных файлов, и создать полученный файл в другой панели именем файла под курсором (дописывать, если существует) + отображение прогресс бара

joinz=PS<"%p"//1>||"%t"//0//Summa.txt||progres<>||upd<3> ;; склеить все файлы активной панели и создать полученный файл в другой панели именем Summa.txt


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru