Renommer plusieurs fichiers avec le nom du repertoire (en batch)

Fermé
phredeus Messages postés 1 Date d'inscription vendredi 28 juin 2013 Statut Membre Dernière intervention 28 juin 2013 - 28 juin 2013 à 14:57
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 28 juin 2013 à 16:09
Bonjour,

j'arrive à renommer des fichiers avec le nom de leur répertoire (s'ils n'ont pas le même extension) avec la commande :

for /d %%a in (*) do for %%i in ("%%a\*") do ren "%%i" "%%a%%~xi"

mais par contre, si dans le même répertoire, j'ai plusieurs fichiers avec des extensions identiques, il me balance un message comme quoi le fichier existe déjà
en fait je n'arrive pas à incrémenter mes noms de fichiers

le résultat voulu serait

de :

c:\toto
---img214.jpg
---img235.jpg
---img456.jpg

renommer avec le nom de dossier en :

c:\toto
---toto1.jpg
---toto2.jpg
---toto3.jpg

pouvez-vous svp m'aider ?

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 juin 2013 à 16:09
hello
je n'ai pas testé avec plusieurs répertoires.
enlever le echo pour effectivement renommer.
essayer:
@echo off
setlocal enableDelayedExpansion
for /d %%a in (*) do (
	set /a c=1
	for %%i in ("%%a\*") do (
		set ext=%%~xi
		echo ren "%%i" "%%a%!c!!ext!"
		set /a c+=1
	)
)
0