Pull to refresh

timestamp в имени файла

Reading time 2 min
Views 1.8K
Приводя в порядок файлы на своём винте (свободное место стало катастрофически сокращаться) озадачился упорядочиванием всяческих фотографий и прочих видеофайлов. Имена файлов фотографий, переписанных из фотоаппарата (у меня Sony) имеют довольно-таки неинформативный вид — DSC00340.JPG. Гораздо удобнее, на мой взгляд, было бы именовать файлы, использую дату и время создания снимка. Можно было бы и упорядочивать по дате/времени, и с одного взгляда определять, к какой эпохе относится файл.

Сети принесли несколько имён программ, способных проделать эту процедуру, но меня заинтересовало другое решение, опубликованное на pcmag.com. Там расписывается пошагово, с объяснениями, как написать bat-файл, состоящий из одной (хорошо, из 2х, если считать echo off) строчки, и выполняющий поставленную задачу. Правда, пришлось добавить 1 символ, потому что стандарты отображения времени у нас и у американцев несколько отличаются. Привожу конечный вариант, кому нужны подробности — ссылка в конце.

1. Создаём файл rename.bat, содержащий строки:
@ECHO OFF
FOR %%V IN (%1) DO FOR /F "tokens=1-5 delims=/:. " %%J IN ("%%~tV") DO IF EXIST %%L%%J%%K_%%M%%N%%~xV (ECHO Cannot rename %%V) ELSE (Rename "%%V" %%L%%J%%K_%%M%%N%%~xV)


2. Запускаем его:
rename.bat *.jpg

в папке с фотографиями

3. Наслаждаемся результатом.

Сопсно, результат меня порадовал, но не очень. Не хватает секунд. Но секунд нет и в информации внутри файла (или я ошибаюсь?). Дело в том, что у меня довольно много фотографий, сделанных в течение одной минуты. Такие файлы этот батник не переименовывает, а пропускает, говоря, что нет абсолютно никакой возможности. Ну, потому что такой файл уже существует. Можно было бы добавлять ещё и порядковый номер фотографии, сделанной в данную минуту… Может, кто-нить сможет подсказать, чем нужно заменить «ECHO Cannot rename %%V», что бы он переименовывал все файлы?

Да, первоисточник — тут
Tags:
Hubs:
+4
Comments 25
Comments Comments 25

Articles