макрос
Пакетне перейменування файлів-фотографій
Submitted by Pavlo Zhezhnych on Tue, 05/02/2008 - 21:25Наявність великої кількості фотографій при публікації може вимагати перейменування відповідних файлів за заданим шаблоном.
Наприклад, при публікації знимок на Фотоблозі Львова назви файлів-фотографій приводяться до наступного формату:
{розташування}_{дата}{користувач}_{№фото}.jpg
Такий формат з високою ймовірністю забезпечує унікальність назв файлів, навіть якщо вони збираються в один каталог від декількох користувачів.
Для того, щоб пакетом привести назви багатьох файлів до зазначеного формату, необхідно:
1)Записати файли в папку з назвою
{дата}{користувач}
Деякі фотоапарати (наприклад, Canon) дозволяють розміщувати знимки по папках за датою автоматично.
2) Виконати наступну команду (файл !prep_files.bat треба розмістити на одному рівні з папкою з фотографіями:
!prep_files.bat {папка} {префікс}
де
{папка} - папка, у якій розміщені фали, які пакетом треба перейменувати.
{префікс} - місце розташування об'єктів, що сфотографовані
Ця команда переводить усі назви файлів у зазначений вище формат. Також після роботи створюється файл з назвою 1.txt, у якому видається список перейменованих файлів.
У процесі перейменування з назв файлів вилучаються префікси, що генерують фотоапарати перед цифрами (наприклад, у фотоапаратах Olympus - це буква 'P', у фотоапаратах Canon - стрічка 'Img_').
Текст !prep_files.bat
ren %1\*.jpg *.jjj
for /f "tokens=*" %%a in ('dir /b %1\*.jjj') do ren %1\%%a j%%a
for /f "tokens=1,2 delims=_AaPp" %%a in ('dir /b %1\*.jjj') do ren %1\%%a*%%b %2_%1_%%b
ren %1\*.jjj *.jpg
dir /b/o %1\*.jpg >%1\1.txt
Приклад
У папці з назвою '20070813a' є наступні файли:
Img_0003.jpg
Img_0004.jpg
Img_0005.jpg
Img_0006.jpg
Img_0007.jpg
Виконуємо команду:
!prep_files.bat 20070813a nrt
В результаті в папці '20070813a' маємо файли з такими назвами:
nrt_20070813a_0003.jpg
nrt_20070813a_0004.jpg
nrt_20070813a_0005.jpg
Recent comments
13 years 1 week ago
13 years 4 weeks ago
13 years 38 weeks ago
13 years 45 weeks ago
14 years 30 weeks ago
15 years 1 week ago
15 years 7 weeks ago
15 years 13 weeks ago
15 years 15 weeks ago
15 years 29 weeks ago