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

phredeus Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
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 ?
A voir également:

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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