Renommer des fichiers avec commande batch

ludo -  
 ludo -
Bonjour,

J'ai besoin de votre aide pour renommer une liste de fichiers à l'aide d'une commande .bat :
voila, je voudrais que les fichiers "source_#####_####" soient renommés en "ID_#####" : remplacer source par ID et en conserver que le premier groupe de chiffres #####.
J'ai essayé avec le commande REN pour changer les lettres du début mais je n'obtient pas ce que je veux: en effet,
REN source* ID* me donne "IDurce_#####_####
et je ne sais pas comment faire pour le reste à savoir garder le premier groupe de chiffres.
Si vous pouvez m'aider et m'indiquer un petit code ca serait sympa !
Merci d'avance
A voir également:

23 réponses

ludo
 
Merci Dubcek, ca marche.
Dans le cas où il y aurait un conflit entre 2 fichiers présentant le meme premier paquet de chiffres, il serait souhaitable en effet de rajouter à la fin du nom un "_v2","_v3" pour les différencier... chapeau si vous trouvez un code batch pour faire cela...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer
C:> dir /b
source_1_1
source_1_2
source_1_3
source_1_4

C:> aa

C:> dir /b
ID_1
ID_1_v2
ID_1_v3
ID_1_v4

C:> type aa.bat
@ echo off

set /a v=1
setlocal enableDelayedExpansion
for /f "delims=_ tokens=1,2*" %%a in ('dir /b source*') do (
set f=ID_%%b%%~xc
if !v! GTR 1  set f=ID_%%b_v!v!%%~xc
if exist !f! (
        set /a v+=1
        set f=ID_%%b_v!v!%%~xc
)
ren %%a_%%b_%%c !f!
)

C:>
0
ludo
 
chapeau !!
Je crois que c'est tout . Merci chef !
0