View previous topic :: View next topic |
Author |
Message |
newsky
Joined: 19 Mar 2010 Posts: 98
|
(Separately) Posted: Tue Sep 27, 2016 15:46 Post subject: Автоматизация при использовании Exiftool |
|
|
Сделал кнопки, для выполнения разных задач с использованием Exiftool, например:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\soft\exiftool\exiftool.exe
-m -all= -overwrite_original .
%COMMANDER_PATH%\wcmicons2.dll,82
Удалить ВСЕ метаданные в фото
1
-1
|
Кнопка прекрасно отрабатывает задачу, если необходимо обработать все файлы в папке. Насколько я понимаю, за это отвечает "точка" в коде для выполнения действий в Exiftool, TC тут никак не участвует. Если убрать точку в Code: | -m -all= -overwrite_original . | то задача не выполняется.
Суть вопроса:
Что и где нужно добавить, что-бы выбранным синтаксисом обрабатывались только выделенные в ТС файлы? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Sep 27, 2016 16:19 Post subject: |
|
|
-charset filename=UTF8 -@ %UL вместо точки.
А вообще ExifTool у нас много раз обсуждалась. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
newsky
Joined: 19 Mar 2010 Posts: 98
|
(Separately) Posted: Tue Sep 27, 2016 16:54 Post subject: |
|
|
Flasher! Не хватает слов, что-бы выразить Вам всю глубину благодарности, за вашу помощь! Спасибо! Извините, за создание ненужной на форуме темы, впредь буду еще сильней стараться искать, до создания новой темы. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Sep 27, 2016 17:02 Post subject: |
|
|
newsky
Да на здоровье. Против темы ничего не имею (соседняя в том же ключе создавалась по моей инициативе), правда она слишком многозадачная. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Wed Sep 28, 2016 21:38 Post subject: |
|
|
Flasher
А где та тема многозадачная? Что-то не нашёл. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Sep 28, 2016 21:46 Post subject: |
|
|
Dimsok
Мы в ней. Внимательно см., где стоит запятая. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Wed Sep 28, 2016 22:33 Post subject: |
|
|
Ну ладно, тогда малозадачная. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Sep 28, 2016 22:56 Post subject: |
|
|
Dimsok
Детсад отключаем и включаем логику. Поиск > *exiftool* > Enter. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
A.N.T.
Joined: 01 Jul 2006 Posts: 190
|
(Separately) Posted: Sat Mar 11, 2017 20:02 Post subject: Перемещение фотографий в каталог по тегу (exiftool) |
|
|
Господа, прошу помощи, задача следующая: найти файлы с тегом FocalLength = 50 и переместить их в отдельный каталог. Важно, чтобы это происходило автоматически, нажатием 1 кнопки.
Уверен, что это возможно с помощью exiftool, но не могу разобраться.
Такая кнопка сортирует файлы по тегу FocalLength. Те на каждое значение тега создает отдельную папку. Мне нужно чтобы папка была создана только для значения 50.
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Work\_automate_tools\exiftool.exe
"-Directory<FocalLength" -d "%T%%Y-%%m-%%d" .
%COMMANDER_PATH%\Work\_automate_tools\exiftool.exe
WPG
1
-1 |
Last edited by A.N.T. on Sun Mar 12, 2017 08:02; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Mar 11, 2017 21:36 Post subject: |
|
|
В этой кнопке ключ -d задаёт формат даты через переменные cmd, он здесь лишний. %T тоже не понять зачем там.
Вот такие нужны параметры: -r -if $exif:FocalLength#==50 -Directory<FocalLength .
-r для поиска по всей глубине структуры.
А что мешало тут создать тему? И сортировки, естественно, тут никакой нет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
A.N.T.
Joined: 01 Jul 2006 Posts: 190
|
(Separately) Posted: Sun Mar 12, 2017 08:01 Post subject: |
|
|
Flasher wrote: |
А что мешало тут создать тему? И сортировки, естественно, тут никакой нет. |
Эх опять я промазал. Извиняюсь.
Flasher wrote: |
Вот такие нужны параметры: -r -if $exif:FocalLength#==50 -Directory<FocalLength .
-r для поиска по всей глубине структуры. |
Большое спасибо, все работает. А можно расшифровать, что значит $exif:FocalLength#==50
Конкретно интересуют символы # и == |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Sun Mar 12, 2017 09:02 Post subject: |
|
|
Последняя цепочка постов перенесена из отдельной темы в уже имеющуюся. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Mar 12, 2017 11:30 Post subject: |
|
|
A.N.T.
Вообще-то в справке есть описание ключа:
-if *EXPR* Specify a condition to be evaluated before processing each *FILE*.
*EXPR* is a Perl-like logic expression containing tag names prefixed by "$" symbols. It is evaluated with the tags from each *FILE* in turn, and the file is processed only if the expression returns true. Unlike Perl variable names, tag names are not case sensitive and may contain a hyphen. As well, tag names may have a leading group names separated by colons, and/or a trailing "#" character to disable print conversion. The expression $GROUP:all evaluates to 1 if any tag exists in the specified "GROUP", or 0 otherwise (see note 2 below). When multiple -if options are used, all conditions must be satisfied to process the file. Returns an exit status of 1 if all files fail the condition. Below are a few examples:
Quote: | # extract shutterspeed from all Canon images in a directory
exiftool -shutterspeed -if "$make eq 'Canon'" dir
# add one hour to all images created on or after Apr. 2, 2006
exiftool -alldates+=1 -if "$CreateDate ge '2006:04:02'" dir
# set EXIF ISO value if possible, unless it is set already
exiftool "-exif:iso<iso" -if "not $exif:iso" dir
# find images containing a specific keyword (case insensitive)
exiftool -if "$keywords =~ /harvey/i" -filename dir |
Notes:
1) The -n and -b options also apply to tags used in *EXPR*.
2) Some binary data blocks are not extracted unless specified explicitly. These tags are not available for use in the -if condition unless they are also specified on the command line. The alternative is to use the $GROUP:all syntax. (eg. Use $exif:all instead of $exif in *EXPR* to test for the existence of EXIF tags.)
3) Tags in the string are interpolated the same way as with -p before the expression is evaluated. In this interpolation, $/ is converted to a newline and $$ represents a single "$" symbol (so
Perl variables, if used, require a double "$").
4) The condition may only test tags from the file being processed.
To process one file based on tags from another, two steps are required. For example, to process XMP sidecar files in directory "DIR" based on tags from the associated NEF:
Code: | exiftool -if EXPR -p '$directory/$filename' -ext nef DIR > nef.txt
exiftool -@ nef.txt -srcfile %d%f.xmp ... |
5) The -a option has no effect on the evaluation of the expression, and the values of duplicate tags are accessible only by specifying a group name (such as a family 4 instance number, eg. $Copy1:TAG, $Copy2:TAG, etc).
$exif: проверяет существование заданного тега, # подавляет вывод остальной (в данном случае - далее 2-х символов) части '.00 mm' значения переменной (если используются очень большие телевики с DGX-конвертером при f≥500, то имеет смысл поставить точку после 50), == в отличии от eq производит числовое сравнение и не требует доп. знаков.
Ключ -fast2 немного ускорит поиск, можно добавить к параметрам слева. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
A.N.T.
Joined: 01 Jul 2006 Posts: 190
|
(Separately) Posted: Sun Mar 12, 2017 17:45 Post subject: |
|
|
Flasher
Большое спасибо. |
|
Back to top |
|
|
newsky
Joined: 19 Mar 2010 Posts: 98
|
(Separately) Posted: Fri Aug 11, 2017 13:14 Post subject: Синтаксис для кнопки |
|
|
Имеется синтаксис, для запуска операции с Exiftool, которая сканирует указанную папку с подкаталогами, и создаёт текстовый файл, со списком найденных файлов по критерию, указанному в коде:
Code: | exiftool -p "$directory/$filename" -r -if "$xmptoolkit =~ /ExifTool/" d:\photo\Mobile\Camera> exiftool_files.txt |
Как нужно изменить код, что-бы сделать из него кнопку ТС с тем нюансом, что папка для сканирования должна быть текущая, активная папка, а не чётко прописанная в коде? А итоговый файл, что-бы создавался или в той-же активной папке или в противоположной папке ТС? |
|
Back to top |
|
|
|