Вы должны отделить три проблемы программирования. (Я использую команды Linux, но они также работают с Cygwin и MinGW).
Поиск и распечатка файлов. Это можно сделать с помощью команды find -iname "..." через папки.
Извлечение данных EXIF. Это можно сделать с помощью exiftool.
1 + 2 может быть легко связан с XARGS. Например. Эта команда выводит список всех тегов, связанных с «Дата» (это одна строка, разрыв строки не предназначен). Вы должны выбрать один для дальнейшей обработки.
find -iname "* .NEF" -print0 | xargs -0 -I {} exiftool -d "% Y,% m,% d" -Все {} | grep "Дата"
например. Вы можете выбрать «Создать дату» и отфильтровать ее в exiftool.
Кстати, если вы хотите просмотреть все информацию о времени для файла, используйте:
exiftool -time: all -a -G0: 1 -s myimage.NEF
И если все ваши файлы находятся в подкаталогах, вы можете использовать опцию -r (и, очевидно, пропустить команду find).
Теперь эта команда выводит ВСЕ доступные данные времени для вашей постобработки:
find -iname "* .NEF" -print0 | xargs -0 -I {} exiftool -csv -time: all -filename -a -G0: 1 {}> outputlist.txt
3. Сортировка, фильтрация. Теперь это должно быть легко, используйте ваши ограничения.
Самое простое - вытащить данные в Excel и применить фильтры, или, что еще лучше, импортировать в базу данных SQL и запросить все, что вы хотите запросить. Вы увидите, что в разных файлах содержится разное количество меток времени, и вам нужно будет их согласовать.
Альтернативой является использование опции -X вместо -csv и генерация вывода XML. Это может быть или не быть проще для постобработки для вас.
Теперь, если вы уверены , что, например, CreateDate - это то, что вам нужно, вы можете попробовать это:
find -iname "* .NEF" -print0 | xargs -0 -I {} exiftool -T -d "# Год #% Y # # Месяц #% m # # День #% d #" -filename -CreateDate {} | grep "# Месяц # 05 #" | grep "# Day # 07 #"
Я думаю, очевидно, как я приправил начальную команду find + exiftool. Он найдет любые изображения с датой создания, имеющей месяц == май и день == 7.
Удачи! ; -)