Inverser une date Batch

cedric -  
 Cedric -
Bonjour,

Je souhaiterai renommer des fichiers sous le format AAAAMMJJ puis nom du fichier puis extension.

j'arrive à récupérer grace à un programme sur un forum la date puis le nom et l'extension mais je n'arrive pas à inverser la date. pourriez vous m'indiquer la ligne de commande et ou la placer dans mon programme svp. J''ai essaye de créer une variable dinv = %d:~6,4% %d:~3,2%
%d:~0,2%
mais cela ne fonctionne pas.

Voci mon code :

@echo off

set extension=JPG
setlocal enableDelayedExpansion
rem
rem dir /T:C pour avoir la date de création et non de modification
rem
for /F "tokens=1,2,3,*" %%a in ('dir /T:C *.%extension%^|findstr ".%extension%$"') do (
rem
rem on transforme la date JJ/MM/AAAA en JJ-MM-AAAA
rem parce que / et : sont interdits dans un nom de fichier
rem
set d=%%a
set d=!d:/=-!
rem
rem on recupère le nom du fichier sans l'extension
rem
set nom=%%~nd
rem
rem on renomme avec des " si il y a des noms avec espaces
rem
ren "%%d" "!d!_!nom!.%extension%")

merci pour votre aide.
A voir également:

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, "cela ne fonctionne pas" = ? messager d'erreur, résultat inattendu, ...?
0
Cedric
 
En faisant echo dinv jai un 6,4 qui apparait ... jessaie ensuite de faire d=dinv
Aucun resultat sur le renommage du fichier
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
C:> date /t
05/11/2017

C:> echo %date:~6,4%%date:~3,2%%date:~0,2%
20171105
0
Cedric
 
Ce n'est pas la date du joir que je recuperer mais la date de creation donc une chaine de caractere.
0
Cedric
 
Ce n'est pas la date du jour que je recupere mais la date de creation donc une chaine de caractere
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
quel est le format de la chaine ?
remplacer date par d
0
cedric
 
Si tu copies mon programme et que tu mets un :

dinv=%d:~6,4%%d:~3,2%%d:~0,2%

et à la fin un
ren "%%d" "!dinv!_!nom!.%extension%")

cela ne fonctionne pas.
je n'ai aucun resultat.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer avec (i majuscule)
...findstr /I ".%extension%$"'
0
Cedric > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour,
Toujours la date au format jour mois année...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
enlever le echo devant ren si c'est ok
@echo off
set extension=JPG
setlocal enableDelayedExpansion
for /F "tokens=1,2,3,*" %%a in ('dir /T:C *.%extension%^|findstr /I ".%extension%$"') do (
set d=%%a
set d=!d:~6,4!!d:~3,2!!d:~0,2!
set nom=%%~nd
echo ren "%%d" "!d!_!nom!.%extension%")

0
cedric > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci beaucoup ,
Dernière petite chose,

peux tu me mettre les tirets stp entre année mois et date :-).

Dans le programme du haut, celà y était, alors j'y connais pas grand chose, j'ai tenté d'insérer la ligne
set d=!d:/=-!
mais aucun succès, la date reste sans tiret.

Merci
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
remplacer
set d=!d:~6,4!!d:~3,2!!d:~0,2!

par
set d=!d:~6,4!-!d:~3,2!-!d:~0,2!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
chez moi, c'est bien la date du fichier qui est dans le rename
0
Cedric
 
Je viens de voir qu'en fait des que je copie de mon iphone vers un dossier, la date de creation devient celle du jour.
Il faut que je recupere la date de modification en fait qui ne change pas quand je copie.
Quel parametre changer dans ma boucle for pour la recuperer ?
Merci par avance
0
Cedric
 
Avec un T:W last written ca fonctionne
0