[batch] Reformater nom liste de fichiers

Résolu
Bonjour à toutes et à tous,

Pouvez-vous me faire part de vos lumières afin de résoudre la problématique suivante ?

Dans le répertoire c:\folder1 se trouve une liste de fichiers de la forme:

azerty gfgddgfdg - fgdfgdgfdg.pdf
uiopqs fsdfsdfsf - sfdsfsdfsd.pdf
dfghjk gfdgfdgdf - gfdgfdgfdg.pdf
lmwxcv gfgdfgdfg - gfgfdgfggf.pdf

Je souhaiterai les renommer sous la forme: (En fait, ne conserver que les 5 premiers caractères)

azerty.pdf
uiopqs.pdf
dfghjk.pdf
lmwxcv.pdf

Comment puis-je via la commande for "nettoyer" ces fichiers ?
(Ils peuvent rester dans le même répertoire ou être transférés dans un autre répertoire)

J'ai tenté deux trois bricoles sans succès.

Exemple: Faire un dir /-D du contenu du répertoire et extraire le contenu dans un log
Se servir de ce log pour renommer les fichiers (Avec un For...tokens... %%a %%bb in....
Mais il y a forcément une solution plus simple. (une commande magique, alliage d'un for et d'une ~1,5 ...)

Merci d'avance pour votre aide

Daniel
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. Tien voila sa devrait marcher:

    @echo off
    setlocal enableDelayedExpansion
    for %%i in (*.pdf) do (
    set fichier=%%i
    ren "%%i" !fichier:~0,6!%%~xi
    )
    setlocal disableDelayedExpansion
    pause


    J'espère que j'ai pue t'aider.
    Bilou.
    0
    1. Merci Bilou.

      Cela fonctionne parfaitement lorsque le batch se trouve dans le même répertoire ou se trouvent les fichiers.
      Il ne fonctionne néanmoins pas lorsque le batch n'est pas dans le même répertoire.

      Exemple: Pour des fichiers contenus dans le répertoire "test"

      @echo off
      setlocal enableDelayedExpansion
      for %%i in (test\*.pdf) do (
      set fichier=%%i
      ren "%%i" !fichier:~0,10!%%~xi
      )
      setlocal disableDelayedExpansion
      pause

      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      The syntax of the command is incorrect.
      Press any key to continue . . .
      0
      1. Opp et voila forum résolue ^^:

        @echo off
        setlocal enableDelayedExpansion
        for /r "test\" %%i in (*.pdf) do (
        set fichier=%%~ni
        ren "%%i" !fichier:~0,6!%%~xi
        )
        setlocal disableDelayedExpansion
        pause


        Avec ce script tu devrait avoir aucun problème.
        Bilou.
        0
        1. La grande classe !!!

          Merci Bilou
          0
          1. Aucun problème les forum sont fait pour sa.

            PS:Tu peut mettre en Résolu (Tout en haut de la page)
            Merci
            0