Renommer des fichiers avec un fichier script Batch

Résolu/Fermé
Polochon94 Messages postés 63 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 22 janvier 2019 - Modifié le 22 oct. 2018 à 21:53
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 oct. 2018 à 10:40
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

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 007
23 oct. 2018 à 09:04
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
Polochon94 Messages postés 63 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 22 janvier 2019 1
23 oct. 2018 à 13:08
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
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 007
23 oct. 2018 à 13:34
Pardon, j'ai oublié de préciser, ce sont toutes les lignes qui doivent être modifiées de la même façon...
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 007
Modifié le 23 oct. 2018 à 13:42
(Par contre à vue d’œil, il me semble que tu auras deux fois l'extension)
0
Polochon94 Messages postés 63 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 22 janvier 2019 1 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
25 oct. 2018 à 16:43
Désolé, toujours pas :

D:\Users\USERNAME\MYDIR>(
SETLOCAL
SET name="01. MonMorceau1"
SET shortName="~4"
SET ext=".mp3"
SET newName=""
SET fullName="D:\Users\USERNAME\MYDIR\01. MonMorceau1.mp3"
REN "" ""
ENDLOCAL
)
Le fichier spécifié est introuvable.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 007
26 oct. 2018 à 09:27
Bonjour,

Regarde peut-être du côté de ENABLEDELAYEDEXPANSION (je te laisse rechercher ce terme)

Xavier
0