Changer nom de fichier selon la date de celui-ci en batch

Martin1972 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je souhaiterais renommer des centaines de photo avec un script en batch

par exemple j'ai :
PICT0001.jpg prise le 20 février 2014 à 15h30

je voudrais :
2014-02-20-1530.jpg

je sais qu'il faut utiliser une boucle for et la commande rename, et détecter la date et l'heure de la photo.

comment faire ?

J'ai trouvé ce script:

***********************************************
Par exemple, en supposant un OS W2k ou supérieur :

------------- debut photo.bat ----------------
@echo off
for /f "tokens=1,2,3 delims=. " %%a in ('date /t') do set _n=%%c%%b%%a
for /f "tokens=1,2 delims=: " %%a in ('time /t') do set _n=%_n%%%a%%b
move photo.jpg %_n%.jpg
set _n=
------------- fin photo.bat ----------------

A adapter au pays, ici fait pour la suisse :
date /t --> "06.12.2006 "
time /t --> "08:29"

La commande "for" permet de décomposer une chaine de caractères dont les
différentes parties sont séparées par des caractères particuliers
(délimiteurs). Pour le délimiteur des divers parties de la date,
on a un point d'où "delims=. ".

Le premier "for" crée une variable "_n" contenant les diverses parties
de la date, sans les délimiteurs, dans l'ordre année-mois-jour.

Le deuxième "for" reprend le contenu de "_n" et lui ajoute les parties
de l'heure.

Le move utiliser "_n" pour renommer la photo.
*********************************************

Mais ça renomme la photo selon l'heure actuelle, et non l'heure de la prise de photo...

Merci à l'avance!
A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
où trouver l'heure de la photo ? c'est l'heure de création du fichier donnée par la commande dir ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
et si plusieurs fichiers ont la même date et heure ?
0
Martin1972 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour dubcek,

Ce sont de photos de deux caméra de surveillance. Il arrive qu'il y ait 2 photos avec la même date et heure. J'imagine que ça peux être un problème...

Comme les photos sont toutes nommée PICT0001, PICT0002, etc. on pourrait se servir du numéro de photo pour les différencier.

Ex: si PICT0001 et PICT0002 on la même date et la même heure, 20 février 2014 à 15h30, On pourrait les nommer 2014-02-20-1530-0001 et 2014-02-20-1530-0002 en utilisant leur nom actuel de photo pour les renommer.

C'est la date de création du fichier qu'il faut récupérer car elle nous indique le moment de la prise de photo.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
pour simplifier, on peut garder le nom et ajouter la date de création
enlever le echo pour effectuer les chagements, faire une sauvegarde avant !!
@echo off
setlocal enableDelayedExpansion
for %%a in (*.jpg) do (
set nom=%%~na
for /F "tokens=1-10 delims=:/ " %%b in ('dir /T:C "%%a" ^| find "%%a"') do(
echo move "%%a" "!nom!-%%d-%%c-%%b-%%e%%f.jpg"
)
)

0