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

[Fermé]
Signaler
Messages postés
2
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
23 février 2014
-
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
-
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!

3 réponses

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 331
hello
où trouver l'heure de la photo ? c'est l'heure de création du fichier donnée par la commande dir ?
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 331
et si plusieurs fichiers ont la même date et heure ?
Messages postés
2
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
23 février 2014

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.
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 331
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"
)
)