mExiftoolTagB.sh 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. #!/bin/bash
  2. E='echo -e';e='echo -en';trap "R;exit" 2
  3. ESC=$( $e "\e")
  4. TPUT(){ $e "\e[${1};${2}H" ;}
  5. CLEAR(){ $e "\ec";}
  6. # 25 возможно это
  7. CIVIS(){ $e "\e[?25l";}
  8. # это цвет текста списка перед курсором при значении 0 в переменной UNMARK(){ $e "\e[0m";}
  9. MARK(){ $e "\e[1;90m";}
  10. # 0 это цвет заднего фона списка
  11. UNMARK(){ $e "\e[0m";}
  12. # ~~~~~~~~ Эти строки задают цвет фона ~~~~~~~~
  13. R(){ CLEAR ;stty sane;CLEAR;};
  14. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  15. HEAD(){ for (( a=2; a<=40; a++ ))
  16. do
  17. TPUT $a 1
  18. $E "\033[34m\xE2\x94\x82 \xE2\x94\x82\033[0m";
  19. done
  20. TPUT 9 3
  21. $E "\033[1;36mProcessing control\033[0m \033[1;2mКонтроль обработки\033[0m";
  22. TPUT 34 3
  23. $E " \033[1;2mОстальные теги\033[0m";
  24. TPUT 39 4
  25. $E "\033[32mUp \xE2\x86\x91 \xE2\x86\x93 Down Select Enter\033[0m";
  26. MARK;TPUT 1 1
  27. $E "\033[0m\033[34m+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\033[0m" ;UNMARK;}
  28. i=0; CLEAR; CIVIS;NULL=/dev/null
  29. FOOT(){ MARK;TPUT 41 1
  30. $E "\033[0m\033[34m+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\033[0m";UNMARK;}
  31. # это управляет кнопками ввер/хвниз
  32. i=0; CLEAR; CIVIS;NULL=/dev/null
  33. #
  34. ARROW(){ IFS= read -s -n1 key 2>/dev/null >&2
  35. if [[ $key = $ESC ]];then
  36. read -s -n1 key 2>/dev/null >&2;
  37. if [[ $key = \[ ]]; then
  38. read -s -n1 key 2>/dev/null >&2;
  39. if [[ $key = A ]]; then echo up;fi
  40. if [[ $key = B ]];then echo dn;fi
  41. fi
  42. fi
  43. if [[ "$key" == "$($e \\x0A)" ]];then echo enter;fi;}
  44. M0(){ TPUT 2 3; $e "Печатать подробные сообщения \033[32m -v[NUM] (-verbose) \033[0m";}
  45. M1(){ TPUT 3 3; $e "Записывать вывод консоли в файлы с именами, оканчивающимися на EXT \033[32m -w[+|!] EXT or FMT (-textOut) \033[0m";}
  46. M2(){ TPUT 4 3; $e "Примечания: \033[32m Notes: \033[0m";}
  47. M3(){ TPUT 5 3; $e "Расширенные возможности: \033[32m Advanced features: \033[0m";}
  48. M4(){ TPUT 6 3; $e "Эта версия опции -w позволяет создавать отдельный выходной файл \033[32m -W[+|!] FMT (-tagOut) \033[0m";}
  49. M5(){ TPUT 7 3; $e "Указывает тип выходных файлов, записываемых с помощью опции -W \033[32m -Wext EXT, --Wext EXT (-tagOutExt) \033[0m";}
  50. M6(){ TPUT 8 3; $e "Cпецифичное ExifTool форматирование RDF/XML для вывода на консоль \033[32m -X (-xmlFormat) \033[0m";}
  51. #
  52. M7(){ TPUT 10 3; $e "Разрешить (-a), запретить (--a) извлекать повторяющиеся имена тегов \033[32m -a, --a (-duplicates, --duplicates)\033[0m";}
  53. M8(){ TPUT 11 3; $e "Извлекать только существующие теги - не создавать составные теги \033[32m -e (--composite) \033[0m";}
  54. M9(){ TPUT 12 3; $e "Извлечение информации из встроенных документов в файлы EPS \033[32m -ee (-extractEmbedded) \033[0m";}
  55. M10(){ TPUT 13 3; $e "Обрабатывать только файлы с -ext или без -ext указанного расширения \033[32m -ext[+] EXT, --ext EXT (-extension)\033[0m";}
  56. M11(){ TPUT 14 3; $e "Закрепите основание для смещения заметок производителя \033[32m -F[OFFSET] (-fixBase) \033[0m";}
  57. M12(){ TPUT 15 3; $e "Увеличьте скорость извлечения информации \033[32m -fast[NUM] \033[0m";}
  58. M13(){ TPUT 16 3; $e "Порядок обработки файлов соответственно отсортированным значением указанного ТЕГА\033[32m -fileOrder[NUM] [-]TAG \033[0m";}
  59. M14(){ TPUT 17 3; $e "Игнорировать указанное имя каталога \033[32m -i DIR (-ignore) \033[0m";}
  60. M15(){ TPUT 18 3; $e "Задайте условие, которое будет оцениваться перед обработкой каждого ФАЙЛА \033[32m -if[NUM] EXPR \033[0m";}
  61. M16(){ TPUT 19 3; $e "Notes: \033[32m Notes: \033[0m";}
  62. M17(){ TPUT 20 3; $e "Игнорируйте мелкие ошибки и предупреждения \033[32m -m (-ignoreMinorErrors) \033[0m";}
  63. M18(){ TPUT 21 3; $e "Задайте имя выходного файла или каталога при записи информации \033[32m -o OUTFILE or FMT (-out) \033[0m";}
  64. M19(){ TPUT 22 3; $e "Перезаписывайте исходный ФАЙЛ \033[32m -overwrite_original \033[0m";}
  65. M20(){ TPUT 23 3; $e "Аналогично -overwrite_original, но позволяюет сохранить исходные атрибуты файла \033[32m -overwrite_original_in_place \033[0m";}
  66. M21(){ TPUT 24 3; $e "Сохранять дату / время изменения файловой системы FileModifyDate исходного файла \033[32m -P (-preserve) \033[0m";}
  67. M22(){ TPUT 25 3; $e "Укажите пароль, чтобы разрешить обработку защищенных паролем PDF-документов \033[32m -password PASSWD \033[0m";}
  68. M23(){ TPUT 26 3; $e "Показывать прогресс при обработке файлов \033[32m -progress[:[TITLE]] \033[0m";}
  69. M24(){ TPUT 27 3; $e "Тихая обработка \033[32m -q (-quiet) \033[0m";}
  70. M25(){ TPUT 28 3; $e "Рекурсивно обрабатывать файлы в подкаталогах \033[32m -r[.] (-recurse) \033[0m";}
  71. M26(){ TPUT 29 3; $e "Просканируйте все файлы (даже неподдерживаемые форматы) на предмет информации XMP\033[32m -scanForXMP \033[0m";}
  72. M27(){ TPUT 30 3; $e "Извлечь значения неизвестных тегов \033[32m -u (-unknown) \033[0m";}
  73. M28(){ TPUT 31 3; $e "Извлекать значения неизвестных тегов, а также информацию из двоичных данных \033[32m -U (-unknown2) \033[0m";}
  74. M29(){ TPUT 32 3; $e "Установите режим для написания / создания тегов \033[32m -wm MODE (-writeMode) \033[0m";}
  75. M30(){ TPUT 33 3; $e "При чтении приводит к извлечению информации из сжатых изображений .gz и .bz2 \033[32m -z (-zip) \033[0m";}
  76. #
  77. M31(){ TPUT 35 3; $e "Изменить тег artist для всех файлов в директории назначения \033[33m -artist \033[0m";}
  78. M32(){ TPUT 36 3; $e "Копирайтинг \033[33m -copyright \033[0m";}
  79. M33(){ TPUT 37 3; $e "Заглавие \033[33m -Title \033[0m";}
  80. M34(){ TPUT 38 3; $e "Автор \033[33m -Author \033[0m";}
  81. #
  82. M35(){ TPUT 40 3; $e "Выход \033[32m EXIT \033[0m";}
  83. LM=35
  84. MENU(){ for each in $(seq 0 $LM);do M${each};done;}
  85. POS(){ if [[ $cur == up ]];then ((i--));fi
  86. if [[ $cur == dn ]];then ((i++));fi
  87. if [[ $i -lt 0 ]];then i=$LM;fi
  88. if [[ $i -gt $LM ]];then i=0;fi;}
  89. REFRESH(){ after=$((i+1)); before=$((i-1))
  90. if [[ $before -lt 0 ]];then before=$LM;fi
  91. if [[ $after -gt $LM ]];then after=0;fi
  92. if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
  93. if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
  94. UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
  95. INIT(){ R;HEAD;FOOT;MENU;}
  96. SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
  97. # Функция возвращения в меню
  98. ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  99. while [[ "$O" != " " ]]; do case $i in
  100. 0) S=M0;SC;if [[ $cur == enter ]];then R;echo " Печатать подробные сообщения. ЧИСЛО указывает уровень детализации в диапазоне от 0 до 5, при этом более высокие числа более подробны. Если ЧИСЛО не указано, то
  101. каждая опция -v увеличивает уровень детализации на 1. При любом уровне больше 0 большинство других параметров игнорируются, и стандартный вывод консоли подавляется,
  102. если не извлечены определенные теги. Использование -v0 приводит к тому, что буфер вывода консоли очищается после каждой строки (что может быть полезно, чтобы избежать
  103. задерживает при передаче вывода exiftool по конвейеру) и печатает имя каждого обработанного файла при записи. Также смотрите опцию -progress.";ES;fi;;
  104. 1) S=M1;SC;if [[ $cur == enter ]];then R;echo "
  105. Записывать вывод консоли в файлы с именами, оканчивающимися на EXT, по одному для каждого исходного файла. Имя выходного файла получается путем замены исходного
  106. файла расширение (включая '.') с указанным расширением (и '.' добавляется в начало EXT, если оно еще не содержит его). В качестве альтернативы, строка FMT может
  107. использоваться для большего контроля над именем выходного файла и каталогом. В строке формата% d,% f и% e представляют каталог, имя файла и расширение исходного
  108. файла, а% c представляет собой номер копии, который автоматически увеличивается, если файл уже существует. % d включает завершающий '/' при необходимости, но% e не
  109. включает начальный '.'. Например:
  110. -w %d%f.txt # тот же эффект, что и \"-w txt\"
  111. -w dir/%f_%e.out # записывать файлы в «каталог» как «FILE_EXT.out»
  112. -w dir2/%d%f.txt # написать в \"dir2\", сохранив структуру dir
  113. -w a%c.txt # напишите в \"a.txt\", \"a1.txt\" или \"a2.txt\" ...
  114. Существующие файлы не будут изменены, если к имени параметра не будет добавлен восклицательный знак (например, -w! Или -textOut!), Чтобы перезаписать файл, или
  115. плюс знак (например, -w + или -textOut +) для добавления к существующему файлу. Оба могут использоваться (например, -w +! Или -textOut +!) Для перезаписи файлов
  116. вывода, которые не существовали перед запуском команды и добавьте вывод из нескольких исходных файлов. Например, чтобы записать один выходной файл для всех исходных
  117. файлов в каждом каталог: exiftool -filename -createdate -T -w+! %d/out.txt -r DIR
  118. Коды формата с заглавной буквы% D,% F,% E и %C предоставляют несколько иные альтернативы версиям с нижним регистром. % D не включает завершающий '/', % F - это
  119. полное имя файла, включая расширение,% E включает начало \".\", А% C увеличивает счетчик для каждого обработанного файла (см. Ниже).
  120. ";ES;fi;;
  121. 2) S=M2;SC;if [[ $cur == enter ]];then R;echo "
  122. 1) В BAT-файле Windows символ «%» представлен как «%%», поэтому аргумент типа «% d% f.txt» записывается как «%% d %% f.txt».
  123. 2) Если аргумент для -w не содержит допустимого кода формата (например,% f), то он интерпретируется как расширение файла. Невозможно указать простое имя файла в
  124. качестве аргумента - создание одного выходного файла из нескольких исходных файлов обычно выполняется путем перенаправления оболочки, т.е.)
  125. exiftool FILE1 FILE2 ... > out.txt
  126. Но при необходимости можно использовать пустой код формата, чтобы аргумент интерпретировался как строка формата, и можно было получить тот же результат без
  127. использования перенаправления оболочки:
  128. exiftool -w+! %0fout.txt FILE1 FILE2 ...
  129. ";ES;fi;;
  130. 3) S=M3;SC;if [[ $cur == enter ]];then R;echo "
  131. Подстроку исходного имени файла, каталога или расширения можно взять, указав ширину поля сразу после символа «%». Если ширина отрицательная, подстрока берется с
  132. конца. Позиция подстроки (символы, которые следует игнорировать в начале или конце строки) может быть задается вторым необязательным значением после десятичной
  133. точки. Например:
  134. Input File Name Format Specifier Output File Name
  135. ---------------- ---------------- ----------------
  136. Picture-123.jpg %7f.txt Picture.txt
  137. Picture-123.jpg %-.4f.out Picture.out
  138. Picture-123.jpg %7f.%-3f Picture.123
  139. Picture-123a.jpg Meta%-3.1f.txt Meta123.txt
  140. (Обратите внимание, что специальные символы могут иметь ширину больше единицы.) Для% d и% D спецификаторы ширины / позиции поля могут применяться к уровням
  141. каталогов вместо позиции подстроки, используя двоеточие вместо десятичная точка в описателе формата. Например:
  142. Source Dir Format Result Notes
  143. ------------ ------ ---------- ------------------
  144. pics/2012/02 %2:d pics/2012/ take top 2 levels
  145. pics/2012/02 %-:1d pics/2012/ up one directory level
  146. pics/2012/02 %:1d 2012/02/ ignore top level
  147. pics/2012/02 %1:1d 2012/ take 1 level after top
  148. pics/2012/02 %-1:D 02 bottom level folder name
  149. /Users/phil %:2d phil/ ignore top 2 levels
  150. (Обратите внимание, что корневой каталог считается одним уровнем, если используется абсолютный путь, как в последнем примере выше.) Для % c эти модификаторы имеют
  151. разные эффекты. Если задана ширина поля, номер копии дополняется нулями до указанной ширины. Ведущий '-' добавляет тире перед номером копии, а '+' добавляет
  152. подчеркивание. По умолчанию номер копии опускается в первом файле с заданным именем, но это можно изменить, добавив к модификатору десятичную точку. Например:
  153. -w A%-cZ.txt # AZ.txt, A-1Z.txt, A-2Z.txt ...
  154. -w B%5c.txt # B.txt, B00001.txt, B00002.txt ...
  155. -w C%.c.txt # C0.txt, C1.txt, C2.txt ...
  156. -w D%-.c.txt # D-0.txt, D-1.txt, D-2.txt ...
  157. -w E%-.4c.txt # E-0000.txt, E-0001.txt, E-0002.txt ...
  158. -w F%-.4nc.txt # F-0001.txt, F-0002.txt, F-0003.txt ...
  159. -w G%+c.txt # G.txt, G_1.txt G_2.txt ...
  160. -w H%-lc.txt # H.txt, H-b.txt, H-c.txt ...
  161. -w I.%.3uc.txt # I.AAA.txt, I.AAB.txt, I.AAC.txt ...
  162. Специальная функция позволяет увеличивать количество копий для каждого обработанного файла, используя% C (верхний регистр) вместо% c. Это позволяет последовательно
  163. число, которое будет добавлено к именам выходных файлов, даже если имена разные. Для % C нулевой номер копии не опускается, как для % c. Ведущий «-» приводит к
  164. сбросу номера в начале каждого нового каталога, а «+» не имеет никакого эффекта. Число перед десятичным знаком дает начальную index, число после десятичного знака
  165. дает ширину поля. В следующих примерах показаны имена выходных файлов при использовании с командой \"exiftool rose.jpg star.jpg jet.jpg ...\":
  166. -w %C%f.txt # 0rose.txt, 1star.txt, 2jet.txt
  167. -w %f-%10C.txt # rose-10.txt, star-11.txt, jet-12.txt
  168. -w %.3C-%f.txt # 000-rose.txt, 001-star.txt, 002-jet.txt
  169. -w %57.4C%f.txt # 0057rose.txt, 0058star.txt, 0059jet.txt
  170. Все коды формата могут быть изменены с помощью 'l' или 'u', чтобы указать нижний или верхний регистр соответственно (например,% le для расширения файла в нижнем
  171. регистре). Когда привык измените % c или % C, числа будут заменены на алфавитное основание (см. пример H выше). Кроме того, % c и %C могут быть изменены на 'n' для
  172. подсчета с использованием естественного числа, начинающиеся с 1, вместо 0 (см. пример F выше).
  173. Тот же самый синтаксис FMT используется с параметрами -o и -tagsFromFile, хотя% c и% C действительны только для имен выходных файлов.
  174. ";ES;fi;;
  175. 4) S=M4;SC;if [[ $cur == enter ]];then R;echo "
  176. Эта расширенная версия опции -w позволяет создавать отдельный выходной файл для каждого извлеченного тега. См. Документацию по параметру -w выше для подробности
  177. базового функционала. Здесь перечислены различия между -W и -w:
  178. 1) При использовании -W для каждого извлеченного тега создается новый выходной файл.
  179. 2) -W поддерживает три дополнительных кода формата:% t,% g и% s представляют имя тега, имя группы и предлагаемое расширение для выходного файла (на основе формат
  180. данных). За кодом% g может следовать одна цифра, чтобы указать номер семейства группы (например,% g1), в противном случае предполагается семейство 0. Спецификаторы
  181. ширины / позиции / регистра подстроки могут использоваться с этими кодами формата точно так же, как с% f и% e.
  182. 3) Аргумент для -W интерпретируется как имя файла, если он не содержит кодов формата. (Для -w это будет расширение файла.) Это изменение позволяет необходимо
  183. указать простое имя файла, которое в сочетании с функцией добавления обеспечивает метод записи метаданных из нескольких исходных файлов в один выходной файл без
  184. необходимости перенаправления оболочки. Например, следующие пары команд дают одинаковый результат:
  185. # перезапись существующего текстового файла
  186. exiftool test.jpg> out.txt # перенаправление оболочки
  187. exiftool test.jpg -W +! out.txt # эквивалент -W параметр
  188. # добавить в существующий текстовый файл
  189. exiftool test.jpg >> out.txt # перенаправление оболочки
  190. exiftool test.jpg -W + out.txt # эквивалент -W параметр
  191. 4) Добавление опции -v к -W отправляет список тегов и имена выходных файлов на консоль вместо того, чтобы давать подробный дамп всего файла. (За исключением
  192. добавления всего вывода в один файл для каждого исходного файла с помощью -W + с выходным файлом FMT, который не содержит% t, \$ g или% s.)
  193. 5) Отдельные элементы списка сохраняются в отдельных файлах, когда -W комбинируется с -b, но учтите, что для создания отдельных файлов необходимо использовать % c
  194. или % C используется в FMT для присвоения файлам уникальных имен.
  195. ";ES;fi;;
  196. 5) S=M5;SC;if [[ $cur == enter ]];then R;echo " Эта опция используется для указания типа выходных файлов, записываемых с помощью опции -W. Выходной файл записывается только в том случае, если предложенное
  197. расширение соответствует EXT. Для записи файлов более одного типа можно использовать несколько параметров -Wext. Используйте --Wext, чтобы записать все, кроме
  198. указанного типа(ов).";ES;fi;;
  199. 6) S=M6;SC;if [[ $cur == enter ]];then R;echo " Используйте специфичное для ExifTool форматирование RDF / XML для вывода на консоль. Подразумевается опция -a, поэтому дублирующиеся теги извлекаются. Параметры
  200. форматирования -b, -D, -H, -l, -s, -sep, -struct и -t могут использоваться в сочетании с -X, чтобы повлиять на вывод, но обратите внимание, что идентификатор тега
  201. (-D, -H и -t), двоичные данные ( -b) и параметры структурированного вывода (-struct) не эффективны для краткого вывода (-ов). Еще одно ограничение -s состоит в том,
  202. что только один тег с заданной группой и имя может появиться на выходе. Обратите внимание, что параметры идентификатора тега (-D, -H и -t) будут создавать
  203. нестандартный RDF / XML, если также не используется параметр -l.
  204. По умолчанию -X выводит плоские теги, поэтому при необходимости следует добавить -struct для сохранения структур XMP. Теги типа списка с несколькими значениями:
  205. отформатированы как пакет RDF, но при использовании -s или -sep они объединяются в одну строку. Использование -L изменяет кодировку XML с UTF-8 на windows-1252.
  206. Другие параметры -charset изменяют кодировку только при наличии соответствующего стандартного набора символов XML. Параметр -b вызывает двоичный записываемые
  207. значения данных, при необходимости закодированные в base64. Параметр -t добавляет к выходным данным информацию таблицы тегов (подробности см. В -t).Примечание. Этот
  208. вывод НЕ совпадает с XMP, потому что он использует динамически сгенерированные имена свойств, соответствующие именам тегов ExifTool, а не стандартные свойства XMP.
  209. Чтобы вместо этого написать XMP, используйте параметр -o с расширением XMP для выходного файла.";ES;fi;;
  210. 7) S=M7;SC;if [[ $cur == enter ]];then R;echo " Разрешить (-a) или запретить (--a) извлекать повторяющиеся имена тегов. По умолчанию повторяющиеся теги подавляются при чтении, если не указаны параметры -ee или
  211. -X используются или в конфигурационном файле включена опция Дубликаты. Эта опция влияет на запись только для разрешения дублирования предупреждений сообщения,
  212. которые будут отображаться. При копировании всегда извлекаются повторяющиеся теги.";ES;fi;;
  213. 8) S=M8;SC;if [[ $cur == enter ]];then R;echo " Извлекать только существующие теги - не создавать составные теги.";ES;fi;;
  214. 9) S=M9;SC;if [[ $cur == enter ]];then R;echo " Извлечение информации из встроенных документов в файлы EPS, встроенной информации EPS и изображений JPEG и Jpeg2000 в файлах PDF, встроенных изображений MPF в
  215. Файлы JPEG и MPO, потоковые метаданные в видео AVCHD и ветвь ресурсов файлов Mac OS. Подразумевается опция -a. Используйте -g3 или -G3, чтобы определить исходный
  216. документ для извлеченной информации. Встроенные документы, содержащие вложенные документы, обозначаются тире в названии группы семейства 3. (например, «Doc2-3» -
  217. это 3-й вложенный документ 2-го встроенного документа.) Обратите внимание, что этот параметр может значительно увеличить время обработки, особенно для PDF-файлы со
  218. множеством встроенных изображений или видео с потоковыми метаданными.
  219. При использовании с -ee параметр -p оценивается для каждого встроенного документа, как если бы это был отдельный входной файл. Это позволяет, например,
  220. генерировать журналов GPS-треков из метаданных в видеороликах. См. Примеры на: https://exiftool.org/geotag.html#Inverse";ES;fi;;
  221. 10) S=M10;SC;if [[ $cur == enter ]];then R;echo "
  222. Обрабатывать только файлы с (-ext) или без (-ext) указанного расширения. Может быть несколько параметров -ext и --ext. Может быть добавлен знак плюса (т. Е. -ext
  223. +), чтобы добавить указанное расширение к обычно обрабатываемым файлам. EXT может начинаться с символа \".\", Который игнорируется. Дело не имеет значения «*» можно
  224. использовать для обработки файлов с любым расширением (или вообще без него), как в последних трех примерах:
  225. exiftool -ext JPG DIR # обрабатывать только файлы JPG
  226. exiftool --ext cr2 --ext dng DIR # поддерживаемые файлы, но CR2 / DNG
  227. exiftool -ext + txt DIR # поддерживаемые файлы плюс TXT
  228. exiftool -ext * DIR # обработать все файлы
  229. exiftool -ext * --ext xml DIR # обрабатывать все файлы, кроме XML
  230. exiftool -ext * --ext DIR # все, кроме тех, у кого нет ext
  231. Использование этого параметра имеет два основных преимущества по сравнению с указанием * .EXT в командной строке:
  232. 1) Он применяется к файлам в подкаталогах в сочетании с параметр -r.
  233. 2) Параметр -ext нечувствителен к регистру, что полезно при обработке файлов в файловых системах, чувствительных к регистру.
  234. Обратите внимание, что все файлы, указанные в командной строке, будут обрабатываться независимо от расширения, если не используется параметр -ext.
  235. ";ES;fi;;
  236. 11) S=M11;SC;if [[ $cur == enter ]];then R;echo " Закрепите основание для смещения заметок производителя. Распространенная проблема с некоторыми редакторами изображений заключается в том, что смещения в
  237. примечаниях производителя не регулируются должным образом, когда файл изменен. Это может привести к извлечению неправильных значений для некоторых записей создателя
  238. при чтении отредактированного файла. Эта опция позволяет число OFFSET, которое необходимо указать для настройки базового смещения нот производителя. Если OFFSET не
  239. задан, ExifTool делает наилучшее предположение о правильной базе. Обратите внимание, что exiftool автоматически исправит смещения для изображений, в которых
  240. хранится исходная информация о смещении (например, более новые модели Canon). Смещения фиксированы навсегда, если при записи EXIF ​​в изображение используется -F
  241. например)";ES;fi;;
  242. 12) S=M12;SC;if [[ $cur == enter ]];then R;echo " Увеличьте скорость извлечения информации. С -fast (или -fast1) ExifTool не будет сканировать до конца изображения JPEG, чтобы проверить AFCP или PreviewImage
  243. трейлер, или вставьте первый комментарий в изображениях GIF или аудио / видео данные в файлах WAV / AVI для поиска дополнительных метаданных. Эти скорости
  244. Преимущества невелики при чтении изображений непосредственно с диска, но могут быть существенными при передаче изображений по конвейеру через сетевое соединение.
  245. Для более существенных увеличивает скорость, -fast2 также заставляет exiftool избегать извлечения любой информации EXIF ​​MakerNote. -fast3 позволяет избежать
  246. извлечения метаданных из файла и возвращает только псевдосистемные теги, но по-прежнему читает заголовок файла, чтобы получить обоснованное предположение о FileType.
  247. -fast4 даже не читает заголовок файла, и возвращает только системные теги и FileType в зависимости от расширения файла. Не действует при записи. Обратите внимание,
  248. что отдельный параметр -fast может использоваться для оценки условия -if или при упорядочивании файлов с параметром -fileOrder. См. -If и -fileOrder параметры для
  249. подробностей.";ES;fi;;
  250. 13) S=M13;SC;if [[ $cur == enter ]];then R;echo "
  251. Установите порядок обработки файлов в соответствии с отсортированным значением указанного ТЕГА. Например, для обработки файлов по дате:
  252. exiftool -fileOrder DateTimeOriginal DIR
  253. Дополнительные параметры -fileOrder могут быть добавлены для вторичных ключей сортировки. Числа отсортированы численно, а все остальные значения отсортированы по
  254. алфавиту Файлы, в которых отсутствует указанный тег, сортируются последними. Порядок сортировки можно изменить на обратный, поставив перед именем тега знак «-»
  255. (например, «-fileOrder -createdate»).
  256. Преобразование печати отсортированных значений отключается с помощью опции -n или #, добавленного к имени тега. Другие параметры форматирования (например, -d) не
  257. имеют влияние на отсортированные значения. Обратите внимание, что параметр -fileOrder может иметь большое влияние на производительность, поскольку он включает
  258. дополнительный проход обработки каждый файл, но это влияние можно уменьшить, указав NUM для уровня -fast, используемого на этапе извлечения метаданных. Например,
  259. -fileOrder4 может использоваться, если TAG является псевдосистемным тегом. Если используется несколько параметров -fileOrder, извлечение выполняется на самом низком
  260. уровне -fast.
  261. ";ES;fi;;
  262. 14) S=M14;SC;if [[ $cur == enter ]];then R;echo " Игнорировать указанное имя каталога. DIR может быть либо именем отдельной папки, либо полным путем. Если указан полный путь, он должен соответствовать Тег
  263. каталога точно следует игнорировать. Используйте несколько параметров -i, чтобы игнорировать более одного имени каталога. Специальное значение DIR для \"SYMLINKS\"
  264. (регистр чувствительный) можно указать, чтобы игнорировать символические ссылки, когда используется опция -r.";ES;fi;;
  265. 15) S=M15;SC;if [[ $cur == enter ]];then R;echo "
  266. Задайте условие, которое будет оцениваться перед обработкой каждого ФАЙЛА. EXPR - это логическое выражение, подобное Perl, содержащее имена тегов с префиксом \$
  267. Он оценивается с помощью тегов из каждого ФАЙЛА по очереди, и файл обрабатывается только в том случае, если выражение возвращает истину. В отличие от имен
  268. переменных Perl, tag имена не чувствительны к регистру и могут содержать дефис. Кроме того, имена тегов могут иметь начальные имена групп, разделенные двоеточиями,
  269. и / или завершающий знак # символ, чтобы отключить преобразование печати. Выражение \$ GROUP: all оценивается как 1, если какой-либо тег существует в указанной
  270. \GROUP\, или 0 в противном случае (см. Примечание 2 ниже). При использовании нескольких опций -if для обработки файла должны быть выполнены все условия. Возвращает
  271. статус выхода 2, если все файлы терпят неудачу условие. Ниже приведены несколько примеров:
  272. # извлечь выдержку из всех изображений Canon в каталоге: exiftool -shutterspeed -if '\$ make eq \"Canon\"' dir
  273. # добавить один час ко всем изображениям, созданным 2 апреля 2006 г. или позже: exiftool -alldates + = 1 -if '\$ CreateDate ge \"2006: 04: 02\"' dir
  274. # установить значение EXIF ​​ISO, если возможно, если оно еще не установлено: exiftool '-exif: iso <iso' -if 'not \$ exif: iso' dir
  275. # найти изображения, содержащие определенное ключевое слово (без учета регистра): exiftool -if '\$ keywords = ~ /harvey/ i' -filename dir
  276. Добавление NUM к параметру -if вызывает выполнение отдельного прохода обработки для оценки EXPR на уровне -fast, заданном параметром NUM (см. Параметр -fast
  277. документацию для деталей). Без NUM выполняется только один проход обработки на уровне, заданном параметром -fast. Например, использование -if4 - это возможно, если
  278. EXPR использует только псевдосистемные теги, и может значительно ускорить обработку, если достаточное количество файлов не удовлетворяет условию. Выражение имеет
  279. доступ к текущему объекту ExifTool через \$ self, и доступны следующие специальные функции, позволяющие короткое замыкание обработка файлов. Обе функции имеют
  280. возвращаемое значение 1. Регистр имеет значение для имен функций.
  281. End () - завершить обработку после этого файла
  282. EndDir () - завершить обработку файлов в этом каталоге
  283. ";ES;fi;;
  284. 16) S=M16;SC;if [[ $cur == enter ]];then R;echo "
  285. 1) Параметры -n и -b также применяются к тегам, используемым в EXPR.
  286. 2) Некоторые блоки двоичных данных не извлекаются, если явно не указано иное. Эти теги недоступны для использования в условии -if, если они не также указывается
  287. в командной строке. Альтернативой является использование синтаксиса \$ GROUP: all. (например. Используйте \$ exif: all вместо \$ exif в EXPR, чтобы проверить
  288. наличие EXIF-тегов.)
  289. 3) Теги в строке интерполируются так же, как с -p перед вычислением выражения. В этой интерполяции \$ / преобразуется в новая строка и \$\$ представляют собой
  290. один символ «\$» (поэтому переменные Perl, если они используются, требуют двойного символа «\$»).
  291. 4) Условие может проверять только теги из обрабатываемого файла. Чтобы обработать один файл на основе тегов из другого, необходимо выполнить два шага. За
  292. Например, для обработки сопроводительных файлов XMP в каталоге DIR на основе тегов из связанного NEF:
  293. exiftool -if EXPR -p '$ каталог / $ имя_файла' -ext nef DIR> nef.txt
  294. exiftool - @ nef.txt -srcfile% d% f.xmp ...
  295. 5) Параметр -a не влияет на оценку выражения, а значения повторяющихся тегов доступны только при указании имени группы. (например, номер экземпляра семейства 4,
  296. например, \$ Copy1: TAG, \$ Copy2: TAG и т. д.).
  297. 6) Доступен специальный UserParam «OK» для проверки успешности предыдущей команды при использовании -execute, и его можно использовать как любой другой тег в
  298. состояние (например, «$ OK»).
  299. ";ES;fi;;
  300. 17) S=M17;SC;if [[ $cur == enter ]];then R;echo " Игнорируйте мелкие ошибки и предупреждения. Это позволяет записывать в файлы с незначительными ошибками и отключает некоторые проверки, которые могут привести к
  301. незначительным ошибкам предупреждения. Как правило, незначительные ошибки / предупреждения указывают на проблему, игнорирование которой обычно не приводит к потере
  302. метаданных. Однако есть исключения, поэтому ExifTool оставляет за вами принятие окончательного решения. Незначительные ошибки и предупреждения обозначаются
  303. [Minor] в начале сообщение. Предупреждения, которые при игнорировании влияют на обработку, обозначаются [Minor] (с большой буквы «M»). Обратите внимание, что это
  304. приводит к отсутствию значений в Строки -tagsFromFile, -p и -if должны быть установлены на пустую строку, а не на неопределенное значение.";ES;fi;;
  305. 18) S=M18;SC;if [[ $cur == enter ]];then R;echo " Задайте имя выходного файла или каталога при записи информации. Без этой опции при записи любых настоящих тегов исходный файл переименовывается в \"FILE_original\"
  306. и вывод записывается в ФАЙЛ. При записи только «псевдо» тегов FileName и / или Directory, -o вызывает копирование файла вместо перемещен, но каталоги, указанные для
  307. любого из этих тегов, имеют приоритет над каталогом, указанным параметром -o.
  308. OUTFILE может быть «-» для записи в стандартный вывод. Имя выходного файла также может быть указано с помощью строки FMT, в которой% d,% f и% e представляют
  309. каталог, имя файла и расширение FILE. Также % c можно использовать для добавления номера копии. См. Параметр -w для примеров строк FMT.
  310. Выходной файл считается именем каталога, если он уже существует как каталог или если имя заканчивается на '/'. Каталоги вывода создаются, если необходимый.
  311. Существующие файлы не будут перезаписаны. Комбинация опции -overwrite_original с -o приводит к стиранию исходного исходного файла после того, как выходной файл будет
  312. успешно записан. Особенность этой опции позволяет создавать определенные типы файлов с нуля или с метаданными из другого типа файла. В Следующие типы файлов могут
  313. быть созданы с использованием этой техники: XMP, EXIF, EXV, MIE, ICC / ICM, VRD, DR4
  314. Тип выходного файла определяется расширением OUTFILE (указывается как «-.EXT» при записи в стандартный вывод). Затем выходной файл создается из комбинация
  315. информации в ФАЙЛЕ (как если бы использовалась опция -tagsFromFile) и значений тегов, назначенных в командной строке. Если ФАЙЛ не указан, выходной файл может быть
  316. создан с нуля, используя только теги, назначенные в командной строке.";ES;fi;;
  317. 19) S=M19;SC;if [[ $cur == enter ]];then R;echo " Перезаписывайте исходный ФАЙЛ (вместо того, чтобы сохранять его, добавляя «_original» к имени файла) при записи информации в изображение. Осторожно: это Опцию
  318. следует использовать только в том случае, если у вас уже есть отдельные резервные копии файлов изображений. Перезапись осуществляется путем переименования временного
  319. файла заменить оригинал. Это удалит исходный файл и заменит его отредактированной версией за одну операцию. В сочетании с -o это опция вызывает удаление исходного
  320. файла, если выходной файл был успешно записан (т. е. файл перемещается, а не копируется).";ES;fi;;
  321. 20) S=M20;SC;if [[ $cur == enter ]];then R;echo " Аналогично -overwrite_original, за исключением того, что добавлен дополнительный шаг, позволяющий сохранить исходные атрибуты файла. Например, на Mac это приводит
  322. к тому, что исходная дата создания файла, тип, создатель, цвет метки, значок, теги Finder, другие расширенные атрибуты и жесткие ссылки на файл становятся
  323. сохраняется (но обратите внимание, что ветвь ресурсов Mac OS всегда сохраняется, если специально не удалена с помощью -rsrc: all = Это реализуется открытием
  324. исходный файл в режиме обновления и замена его данных копией временного файла перед удалением временного. Дополнительный шаг приводит к медленная производительность,
  325. поэтому вместо этого следует использовать параметр -overwrite_original Обратите внимание, что эта опция возвращается к поведению опции -overwrite_original, когда
  326. также записываются теги FileName и / или Directory.";ES;fi;;
  327. 21) S=M21;SC;if [[ $cur == enter ]];then R;echo " Сохранять дату / время изменения файловой системы (FileModifyDate) исходного файла при записи. Обратите внимание, что некоторые файловые системы хранят дату
  328. создания (например, FileCreateDate в системах Windows и Mac), на который этот параметр не влияет. Эта дата создания сохраняется в системах Windows, где
  329. Win32API :: File и Win32 :: API доступны независимо от этого параметра. Для других систем можно использовать параметр -overwrite_original_in_place, если необходимо
  330. для сохранения даты создания. Параметр -P заменяется любым значением, записанным в тег FileModifyDate.";ES;fi;;
  331. 22) S=M22;SC;if [[ $cur == enter ]];then R;echo " Укажите пароль, чтобы разрешить обработку защищенных паролем PDF-документов. Если пароль требуется, но не указан, выдается предупреждение и документ не
  332. обрабатывается. Эта опция игнорируется, если пароль не требуется.";ES;fi;;
  333. 23) S=M23;SC;if [[ $cur == enter ]];then R;echo " Показывать прогресс при обработке файлов. Без двоеточия опция -progress добавляет счетчик прогресса в скобках после имени каждого обработанного file, с указанием
  334. текущего номера файла и общего количества файлов для обработки. Подразумевает параметр -v0, в результате чего имена обрабатываемых файлов изменяются также печататься
  335. при письме. В сочетании с параметром -if общее количество включает все файлы до применения условия, но файлы, которые Если условие не выполнено, их имена не будут
  336. напечатаны. Если за ним следует двоеточие (например, -progress :), заголовок окна консоли устанавливается в соответствии с указанной строкой TITLE. Если TITLE не
  337. указан, по умолчанию Предполагается, что TITLE содержит строку «ExifTool% p %%». В строке% f представляет имя файла,% p - прогресс в процентах,% r - прогресс в виде
  338. ratio,% ## b - это индикатор выполнения шириной ## (20 символов, если ## опущено), а %% - это символ%. Можно комбинировать с обычным -progress возможность также
  339. отображать счетчик прогресса в сообщениях консоли. (Примечание: для правильной работы этой функции на Mac / Linux, stderr должен перейти в консоль.)";ES;fi;;
  340. 24) S=M24;SC;if [[ $cur == enter ]];then R;echo " Тихая обработка. Один -q подавляет нормальные информационные сообщения, а второй -q также подавляет предупреждения. Сообщения об ошибках не могут быть подавлено,
  341. хотя незначительные ошибки могут быть понижены до предупреждений с помощью опции -m, которая затем может быть подавлена с помощью «-q -q».";ES;fi;;
  342. 25) S=M25;SC;if [[ $cur == enter ]];then R;echo " Рекурсивно обрабатывать файлы в подкаталогах. Имеет смысл, только если ФАЙЛ - это имя каталога. Подкаталоги с именами, начинающимися с \".\" не обрабатывается,
  343. если только \".\" добавляется к имени параметра (например, -r. или -recurse.). По умолчанию exiftool также будет следовать символическим ссылкам на каталоги, если
  344. поддерживается системой, но это можно отключить с помощью \"-i SYMLINKS\" (подробности см. в параметре -i). Объедините это с параметрами -ext, чтобы управлять типы
  345. обрабатываемых файлов.";ES;fi;;
  346. 26) S=M26;SC;if [[ $cur == enter ]];then R;echo " Просканируйте все файлы (даже неподдерживаемые форматы) на предмет информации XMP, если они еще не найдены. В сочетании с параметром -fast только неподдерживаемые
  347. типы файлов сканируются. Предупреждение: сканирование больших файлов может занять много времени.";ES;fi;;
  348. 27) S=M27;SC;if [[ $cur == enter ]];then R;echo " Извлечь значения неизвестных тегов. Добавьте еще один -u, чтобы также извлечь неизвестную информацию из блоков двоичных данных. Этот параметр применяется к тегам с
  349. числовые идентификаторы тегов и вызывают генерацию имен тегов, таких как \"Exif_0xc5d9\", для неизвестной информации. Это не влияет на типы информации, которые имеют
  350. удобочитаемые идентификаторы тегов (например, XMP), поскольку неизвестные теги автоматически извлекаются из этих форматов.";ES;fi;;
  351. 28) S=M28;SC;if [[ $cur == enter ]];then R;echo " Извлекать значения неизвестных тегов, а также неизвестную информацию из некоторых блоков двоичных данных. Это то же самое, что и два параметра -u.";ES;fi;;
  352. 29) S=M29;SC;if [[ $cur == enter ]];then R;echo " Установите режим для написания / создания тегов. MODE - это строка из одного или нескольких символов из списка ниже. Режим записи по умолчанию - «wcg».
  353. w - записать существующие теги
  354. c - Создать новые теги
  355. g - при необходимости создавать новые группы
  356. Например, используйте «-wm cg» только для создания новых тегов (и избегайте редактирования существующих). Уровень группы - это уровень подкаталога в структуре
  357. метаданных. Для XMP или IPTC это полный блок XMP / IPTC (группа семейства 0), но для EXIF это индивидуальный IFD (группа семейства 1).";ES;fi;;
  358. 30) S=M30;SC;if [[ $cur == enter ]];then R;echo " При чтении приводит к извлечению информации из сжатых изображений .gz и .bz2 (только одно изображение на архив; требуется, чтобы gzip и bzip2 были доступный).
  359. При записи вызывает запись сжатой информации, если это поддерживается форматом метаданных (например, сжатые текстовые метаданные в PNG), отключает рекомендованное
  360. заполнение во встроенном XMP (экономит 2424 байта при записи XMP в файл) и записывает XMP в сокращенном формате - эквивалент установки API Compress = 1 и
  361. Compact = \"NoPadding, Shorthand\".";ES;fi;;
  362. #
  363. 31) S=M31;SC;if [[ $cur == enter ]];then R;echo "
  364. Изменить тег “artist” для всех файлов в директории назначения:
  365. exiftool -artist=\"Arthur Gareginyan\" ./folder
  366. ";ES;fi;;
  367. 32) S=M32;SC;if [[ $cur == enter ]];then R;echo "
  368. Изменить тэги нескольких файлов:
  369. exiftool -copyright=\"2014 Arthur Gareginyan\" a.jpg b.jpg c.jpg
  370. ";ES;fi;;
  371. 33) S=M33;SC;if [[ $cur == enter ]];then R;echo "
  372. Изменить тег Title:
  373. exiftool -Title=\"This is the title\"
  374. ";ES;fi;;
  375. 34) S=M34;SC;if [[ $cur == enter ]];then R;echo "
  376. Изменить теги Title и Author:
  377. exiftool -Title=\"This is the title\" -Author=\"Arthur Gareginyan\" input.pdf
  378. ";ES;fi;;
  379. #
  380. 35) S=M35;SC;if [[ $cur == enter ]];then R;clear;exit 0;fi;;
  381. esac;POS;done