Renommer des fichiers avec un fichier script Batch

Résolu
Polochon94 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,

je suis sous Windows 10 et souhaite renommer des fichiers de musique qui sont de la forme "01. MonMorceau1.mp3", "02. MonMorceau2.mp3", etc... en "MonMorceau1.mp3", "MonMorceau2.mp3", etc... .
J'ai suivi des tutos sur les fichiers Batch et j'en suis arrivé à écrire le code suivant :

FOR /R %%G IN (*.mp3) DO (
SETLOCAL
SET "name=%%~nG"
SET "shortName=%name:~4%"
SET "ext=%%~xG"
SET "newName=%shortName%%ext%"
SET "fullName=%%G"
REN "%fullName%" "%newName%"
ENDLOCAL
)

Cependant, cela ne marche pas du tout. Lorsque je me place dans le dossier D:\Users\USERNAME\MYDIR avec dans l'invite de commande et que j’exécute mon ficher .bat, je vois apparaitre lors d'une boucle :

D:\Users\USERNAME\MYDIR>(
SETLOCAL
SET "name=01. MonMorceau1.mp3""
SET "shortName=~4,0"
SET "ext=.mp3"
SET "newName="
SET "fullName=D:\Users\USERNAME\MYDIR\01. MonMorceau1.mp3"
REN "" ""
ENDLOCAL
)
Le fichier spécifié est introuvable.

Je ne comprends pas pourquoi les variables name et newName ont l'air vides et pourquoi fullName et newName ne sont pas utilisées.
Merci d'avance.

2 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Le problème vient de l'utilisation des guillemets. Il ne faut pas inclure la première partie de l'expression, mais seulement la valeur :
    SET name="%%~nG" 


    Xavier
    1
    1. Polochon94 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   2
       
      Bonjour,

      merci pour la réponse, mais ça ne change rien. J'obtiens :

      D:\Users\USERNAME\MYDIR>(
      SETLOCAL
      SET name="01. MonMorceau1.mp3""
      SET "shortName=~4,0"
      SET "ext=.mp3"
      SET "newName="
      SET "fullName=D:\Users\USERNAME\MYDIR\01. MonMorceau1.mp3"
      REN "" ""
      ENDLOCAL
      )
      Le fichier spécifié est introuvable.
      0
    2. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Pardon, j'ai oublié de préciser, ce sont toutes les lignes qui doivent être modifiées de la même façon...
      0