Renommer des fichiers d'un dossier
Résolu
Cdrx34
-
barnabe0057 Messages postés 14329 Date d'inscription Statut Contributeur Dernière intervention -
barnabe0057 Messages postés 14329 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai récupéré un batch pour un renommage de fichier en intégrant le nom du dossier mère.
Le batch fonctionne très bien mais j'aimerai ajouter dans le renommage les nom des dossiers mère.
exemple :
Arborésence : Dossier1 > Dossier2 > Dossier3 > fichier
Renommage : Dossier1_Dossier2_Dossier3_fichier
Ci-dessous le code que j'ai :
@echo off
Title Renommage des fichiers dans un dossier avec son prefixe
for %%I in (.) do set "CurrDirName=%%~nxI"
for /f "delims=" %%f in ('Dir /A-D /b') do (
If "%%f" NEQ "%~nx0" (
REN "%%f" "%CurrDirName%_%%f"
)
)
pause
Merci d'avance de vos retours
Cédric
J'ai récupéré un batch pour un renommage de fichier en intégrant le nom du dossier mère.
Le batch fonctionne très bien mais j'aimerai ajouter dans le renommage les nom des dossiers mère.
exemple :
Arborésence : Dossier1 > Dossier2 > Dossier3 > fichier
Renommage : Dossier1_Dossier2_Dossier3_fichier
Ci-dessous le code que j'ai :
@echo off
Title Renommage des fichiers dans un dossier avec son prefixe
for %%I in (.) do set "CurrDirName=%%~nxI"
for /f "delims=" %%f in ('Dir /A-D /b') do (
If "%%f" NEQ "%~nx0" (
REN "%%f" "%CurrDirName%_%%f"
)
)
pause
Merci d'avance de vos retours
Cédric
2 réponses
-
Bonjour,
C'est très simple :
@echo off
setlocal enableDelayedExpansion
Title Renommage des nouveaux fichiers dans un dossier avec son prefixe
for /f "delims=" %%G in ('2^>nul dir /a-d /b') do (
set nouveau=%%~pnxG
if not "%%~G"=="%~nx0" (
set nouveau=!nouveau:\=_!
ren "%%~fG" "!nouveau:~1!"
)
)
pause
-
Merci, ton code fonctionne super bien mais ça reprend toute l'arborescence des dossiers.
En fait j'aurais juste besoin de remonter de 5 dossiers pas plus.
La solution est peut être plus compliquée du coup.- Ca n'est pas beaucoup plus compliqué, ce qui est compliqué à gérer c'est le chat qui saute sur le clavier ;)
@echo off
setlocal enableDelayedExpansion
Title Renommage des nouveaux fichiers dans un dossier avec son prefixe
pushd "..\..\..\..\.."
set "racine=%CD%"
popd
for /f "delims=" %%G in ('2^>nul dir /a-d /b') do (
set "nouveau=%%~fG"
if not "%%~G"=="%~nx0" (
set "nouveau=!nouveau:%racine%=!"
if "!nouveau:~0,1!"=="\" (set nouveau=!nouveau:~1!)
set nouveau=!nouveau:\=_!
ren "%%~fG" "!nouveau!"
)
)
pause
-
-
Au top merci c'est exactement le résultat qu'il me faut.
Il faut que je me forme sur le batch, cela pourrait résoudre pas mal de chose pour mon boulot.
Encore merci.