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.

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, "cela ne fonctionne pas" = ? messager d'erreur, résultat inattendu, ...?
    0
    1. 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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    C:> date /t
    05/11/2017

    C:> echo %date:~6,4%%date:~3,2%%date:~0,2%
    20171105
    0
    1. Cedric
       
      Ce n'est pas la date du joir que je recuperer mais la date de creation donc une chaine de caractere.
      0
  3. Cedric
     
    Ce n'est pas la date du jour que je recupere mais la date de creation donc une chaine de caractere
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      quel est le format de la chaine ?
      remplacer date par d
      0
  4. 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
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      essayer avec (i majuscule)
      ...findstr /I ".%extension%$"'
      0
    2. Cedric > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour,
      Toujours la date au format jour mois année...
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      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
    4. cedric > dubcek Messages postés 18627 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
    5. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    chez moi, c'est bien la date du fichier qui est dans le rename
    0
    1. 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
    2. Cedric
       
      Avec un T:W last written ca fonctionne
      0