Renommer des fichiers avec commande batch

Fermé
ludo - 16 nov. 2011 à 11:54
 ludo - 22 nov. 2011 à 15:03
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

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 18767 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 5 mars 2025 5 628
22 nov. 2011 à 14:50
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
chapeau !!
Je crois que c'est tout . Merci chef !
0