Automatyczna zmiana nazw plików na daty z EXIF

Zwykle ludzie, którzy porządkują swoje zdjęcia, wrzucają wszystkie razem do jednego folderu-wysypiska-śmieci, z nazwami takimi jakie nadały im aparaty. Aby nie zgubić się w tym chaosie, powstały specjalne programy takie jak np. Picasa (już martwa) czy digiKam. Ale jest też inna grupa, która ceni sobie porządek już na poziomie systemu plików, a więc bez abstraktów wyższego poziomu (czyli bez obudowywania zdjęć w metadane w bibliotece którejś z dodatkowych aplikacji) i segregują fotografie w skrupulatnie przygotowywanych katalogach, grupowanych adekwatnie do przynależącego zbioru. W tym modelu, szybko w głowie rodzi się pytanie: co zrobić z nazwami plików? Jest ich przecież mnóstwo, a do tego różne aparaty mają różne nazewnictwo, a nawet tworzą małe pliki konfiguracyjne które odpowiadają za kolejną numerację (rzecz jasna umierają wraz z formatowaniem karty i nowe zdjęcia numerowane są od nowa, konfliktując z już zarchiwizowanymi plikami).
Wygodnym panaceum jest nazywanie plików datą ich wykonania, która jest automatycznie zapisywana w EXIF, specjalnym obszarze w obrębie danego formatu pliku (np. JPEG), który przechowuje przeróżne meta dane m.in. właśnie wspomniane daty (warto więc dbać o poprawne ustawienia w aparatach!).

Jest sporo programów, które zajmują się masową zmianą nazw plików (nie wspominając o własnoręcznie pisanych skryptach). Większość z nich jest jednak dość złożona i wymaga „myślenia algorytmami”. Chcę więc zaproponować antyczną, małą, prostą i zapomnianą aplikację, z którą poradzi sobie każdy: Namexif

Niestety brakuje obsługi języka polskiego, więc nie miej mi za złe kiedy w poradniku będę tłumaczyć wszystkie opcje i prowadzić za rękę. Z premedytacją kieruję go do osób starszej daty, które lepiej znają „bukwy i krzesełka” niż język Szekspira, i przede wszystkim do osób początkujących.

1. Po uruchomieniu programu przywita cię ekran powitalny, kliknij więc w przycisk "Next >" (czyli "Dalej"), a jeśli w dalszej części zechcesz się cofnąć to oczywiście służy do tego przycisk "< Back" (czyli "Wróć"). "Cancel" ("Anuluj") zamyka aplikację.

2. W kolejnym menu przyciskami "Add Files" i "Add Dir" dodajesz pliki i foldery (na szczęście sczyta rekurencyjnie całe drzewo jeśli zaznaczysz "Include Subdirectories"). Szkoda, że brakuje obsługi „przeciągnij i upuść”, bo przedzieranie się przez gąszcz katalogów jest dość uciążliwe, tym bardziej że startuje w ostatnio zapamiętanej lokalizacji. "Clear List" czyści listę wczytanych plików (niestety nie można ręcznie usunąć pojedynczego lub zaznaczyć kilku naraz). 

3. Kolejne menu to wybór formatu daty. Nasza akurat kiepsko się sortuje, dlatego wyjątkowo w tym przypadku, lepiej przyjąć obcą (priorytetem jest aby managery plików wyświetlały je po kolei, adekwatnie do czasu wykonania). Proponuję „rok-miesiąc-dzień, godzina minuta sekunda”, przy których dodatkowo dojdą ich oznaczenia. Czy nie lepiej byłoby użyć np. zamiast „s” dwukropka? Nie lepiej, ponieważ NTFS i systemy FATopodobne nie pozwalają (a konkretnie to Windows nie pozwala…) na używanie tego znaku w nazwie pliku i folderu.

Niekiedy dwie osoby wykonują zdjęcia w tym samym czasie i jedna ma błędną godzinę w aparacie (np. małżonka ma zgodną z rzeczywistością, ale mąż aż godzinę do tytułu bo aparat nie przestawił jej po „zmianie czasu”). Wówczas po zmieszaniu zasobów z obydwu aparatów (kiedy jest to np. wycieczka, więc zgodnie z założeniami zbiorów, lądują w jednym katalogu) kolejność zostanie zaburzona. Często przytrafia się to moim rodzicom, i na takie okazje powstała opcja "Shift Time by", czyli przestawienia godzin, minut i sekund do przodu lub do tyłu, wbrew zapisowi z EXIF. W ten sposób można uratować chronologię wydarzeń. ;)

Domyślnie jest "+0:00:00", ale można dowolnie manipulować czasem zastępując plus minusem, i zwiększać wartości.

4. Po potwierdzeniu wszystkich czynności, program rozpocznie zmienianie nazw wszystkich wskazanych plików (lub wszystkich znalezionych we wskazanych folderach).

Po zakończeniu przeprawiania nazw plików, pojawi się pomarańczowy przycisk "Finish" kończący pracę programu.

5. Pozostaje jeszcze jedna kwestia, która potrafi rozdrażnić niejednego szczególarza. Mianowicie rozszerzenia z dużej litery. Domyślnie w Windows, są ukrywane, ale ja osobiście preferuję jednak ich pokazywanie i wtedy w oczy rzuca się to piekielnie kontrastujące, gigantyczne JPG. :)

Na tę okazję polecam plik *.bat, który wywołany, automatycznie sam pozamienia wszystkie *.JPG na *.jpg. W tym celu, stwórz plik tekstowy i zmień mu nazwę z "Nowy dokument tekstowy.txt" na "_dowolna nazwa.bat". Znak podkreślenia na początku oczywiście nie jest konieczny, ale dzięki temu wrzucony do katalogu ze zdjęciami, zawsze pojawi się na początku listy niezależnie od użytych nazw. W przykładzie niżej, jest to "_test.bat". 

6. Po utworzeniu pustego pliku i zmianie rozszerzenia z *.txt na *.bat, zmieni się także jego ikona. Tak ma być. Kliknij na nim prawym przyciskiem myszy i wybierz opcję "Edytuj".

7. Wpisz teraz "RENAME *.JPG *.jpg" i zapisz zmiany. Można też dodać kolejne linijki z innymi wariantami.

8. Gotowe. Teraz wystarczy umieścić plik w folderze ze zdjęciami, dwu-kliknąć i w ułamku sekundy, wszystkie rozszerzenia zmienią się na małe jpg. Oczywiście nie trzeba za każdym razem tworzyć nowego batcha, wystarczy go sobie gdzieś przenieść i w razie potrzeb kopiować/uruchamiać/usuwać. Można pokusić się także o coś bardziej skomplikowanego, czyli rekurencję: "FOR /R %%z IN (*.JPG) DO RENAME "%%z" *.jpg" (skrypt przeczesze także podfoldery). Można i na końcu dodać linijkę "DEL *.bat", a po skończeniu zadania sam się unicestwi.

  • Przykładowy batch z rekurencją i seppuku.