Retirer les espaces dans les dates

Résolu
Bonjour à tous et toutes

Je viens vers vous car je cherche depuis deux jours à renommer mes documents.
Les fichiers sont tous nommés de la même manières

yyyy mm dd nomFichier et je voudrais les renommer tous de cette manière:
yyyymmdd_nomFicher

Pour l'instant j'arrive à remplacer tous les espaces par des -
Mais je n'arrive pas à coller les parties de la date.

Voilà le code que j'utilise par exemple pour les photos.

@echo off
setlocal enabledelayedexpansion

chcp 1252
for /r "C:\Users\dossier_test" %%a in (*.jpg) do (
set "path=%%~nxa"
set "path=!path: =!"
move /y "%%~a" "%%~dpa!path!"
)
pause


Je vous remercie d'avance pour l'aide que vous m'apporterez.
Bonne journée à tous et toutes

5 réponses

  1. Bonjour,

    Voilà qui devrait t'aider :
    cd C:\Users\dossier_test

    for /f "tokens=1,2,3,* delims= " %%B in ('dir /b /a-d *.jpg') do (echo %%B%%C%%D_%%E)

    pause
    1
    1. Normalement c'est le navigateur qui bloque mon site, pas le firewall, et ça peut se contourner facilement en cliquant en bas de la fenêtre.

      Voilà le code :

      cd C:\Users\dossier_test

      for /f "tokens=*" %%A in ('dir /b *.jpg') do (

      for /f "tokens=1,2,3,* delims= " %%B in ("%%A") do (

      if not "%%C"=="" (ren "%%A" "%%B%%C%%D_%%E" && echo %%B%%C%%D_%%E)

      )

      )

      pause

      exit
      1
      1. Merci beaucoup.

        Tu m'as enlever une très grosse épines du pied.
        Grâce à toi je n'ai plus à renommer toutes les photos à la main.

        :-)
        0
      2. @DelNCDe rien, content d'avoir pu être utile.
        0
      3. Je viens de voir que je dois maintenant faire la même opération pour les dossiers.

        Pour l'instant, j'arrive à remplacer dans le nom des dossiers les espaces par des _
        @echo off
        setlocal enabledelayedexpansion

        for /f "delims=" %%a In ('dir /b/a-d/s/a " C:\Users\dossier_test" ') Do (
        set "$File=%%~nxa"
        set "$File=!$File: =-!"
        ren "%%a" "!$File!"
        )
        pause


        Mais il faut que pour les dates je fasse la même chose que pour les photos.
        Je vais me baser sur ton script.
        J'espère y arriver

        @+
        0
    2. Pour les dossiers :

      cd C:\Users\dossier_test

      for /f "tokens=*" %%A in ('dir /b /ad "*.*"') do (

      for /f "tokens=1,2,3,* delims= " %%B in ("%%A") do (

      if not "%%C"=="" (ren "%%A" "%%B%%C%%D_%%E" && echo %%B%%C%%D_%%E)

      )

      )

      pause

      exit
      1
      1. Tu es trop fort.
        Merci mille fois. :-)

        C'est dans la partie ( 'dir ') ou je ne mettais pas les bons arguments.

        Je voudrais continuer à apprendre à faire des scripts en batch.
        Aurais-tu des pages internet à me conseiller ?

        Merci
        0
      2. @barnabe0057Merci pour les sites, j'irai les visiter plus tard.

        Je vais voir pour améliorer encore un peu mon script.
        Il faut aussi renommer les sous dossiers.

        Sur un des script que j'ai fait, il fallait ajouter /s /o après dir ...;
        Donc çà ferait
         dir /b /ad /s /o "*.*"
        0
      3. @DelNCJ'arrive à renommer les dossiers et sous dossiers

        Mais je dois lancer une première fois mon script pour les dossiers et une deuxième fois pour les osus doosiers

        dir /b/a-d/s/a
        0
      4. @DelNCDésolé je ne comprend pas pourquoi tu dois lancer 2 fois ton script.

        Donne-moi tout le contenu de ton script, on peut peut-être l'améliorer.
        0
    3. Je te laisse chercher mais si jamais tu perds patience voilà la solution complète :

      https://jirafeau.murky-lane.top/f.php?h=0uXHKKkB&p=1

      Bonne journée.
      0
      1. Merci barnabe0057

        Je vais essayer dans un premier temps de finir le script.
        Si je n'y arrive pas, j'irai voir sur le site que tu proposes.

        @+
        0
        1. Je viens de faire le test.
          Le résultat sur la console est ok :-)
          C'est pile poil ce que je voulais faire.

          Il faut maintenant que j'arrive à renommer les photos comme il faut
          0
        2. @DelNCJ'ai fait plein de tests et je n'y arrive pas.

          Je ne peux pas accéder à ton adresse, mon firewall bloque la page.
          Peux-tu, s'il te plaît me mettre le code dont j'ai besoin.

          Merci
          0