Во времена моей учёбы в Санкт-Петербургском Александровском лицее, наша руководитель группы любила повторять: «Хороший программист должен быть ленивым». В том смысле, что он должен быть достаточно ленив, чтобы писать программы, выполняющие за него рутинные операции.
Дано: база отснятых фотографий (примерно 10000), разбитая на папки по съёмочным дням и содержащая как цифровые негативы в формате RAW, так и созданные на их основе JPG. А также простые JPG, полученные прямо из фотоаппарата. На свежеприобретённом фотоаппарате каждый RAW файл занимает порядка 7.5 мегабайт, поэтому, скажем, отснять за день пару гигабайт — совершенно обычное дело. Так места даже на самом ёмком винчестере не напасешься. В связи с этим было принято волевое решение сделать следующее:
1. Перенести цифровые негативы на DVD, учитывая, что нужны они довольно редко
2. Уменьшить все JPG до размера, подходящего для просмотра, при этом те JPG, которые не имеют оригинального негатива, также предварительно скопировать на DVD, чтобы не потерять оригиналы при пакетном уменьшении
3. Создать каталог переносимых за пределы базы файлов с помощью программы
WhereIsIt с тем, чтобы по имени уменьшенного JPG можно было быстро найти на нужной болванке исходный RAW файл.
Задача
Переименовать те JPG картинки, которые имеют оригиналы в виде RAW файлов таким образом, чтобы их можно было отличить от остальных. Например, если есть файл 1.jpg и 1.crw — переименовать первый в 1.crw.jpg. Также надо учитывать, что старый фотоаппарат создавал RAW файлы с расширением CRW, а новый — CR2. Джипеги в таком случае должны быть переименованы соответственно.
Пишем WSH скрипт, который пробегает все папки внутри указанной и делает всю грязную работу за нас:
http://scr.mail333.com/recursive.vbs.renamed
Правим внутри пути к папкам, сохраняем как recursive.vbs и запускаем его командой cscript //nologo recursive.vbs > rename.bat
Вуаля, на выходе имеем rename.bat файл, который содержит команды для переименования файлов (сам скрипт ничего не переименовывает).
Дело сделано.