Batch - renommer
Résolu
okidoki
-
0kid0ki Messages postés 192 Statut Membre -
0kid0ki Messages postés 192 Statut Membre -
Bonjour,
je poste ici car j'avais dans l'idée de renommer les photos de mes vacs en un nom un peu plus explicite.
problème mon .bat ne veut pas.
j'ai un petit souci, voila mon code simplifié pour les photos 1 à 9 :
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-<gras>
Et Voici ce qu'il me réponds :
je poste ici car j'avais dans l'idée de renommer les photos de mes vacs en un nom un peu plus explicite.
problème mon .bat ne veut pas.
j'ai un petit souci, voila mon code simplifié pour les photos 1 à 9 :
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-<gras>
@echo off
set cpt=1
set fichier=photo
set nomFutur=vacances_ete_2011
:Pour_cpt_de_1_a_9
pause
set cheminJPG=%CD%\*%fichier%*0%cpt%*.jpg
set cheminGIF=%CD%\*%fichier%*0%cpt%*.gif
if exist %cheminJPG% ( rename %cheminJPG% %nomFutur%-0%cpt%.jpg )
if exist %cheminGIF% ( rename %cheminGIF% %nomFutur%-0%cpt%.gif )
set %cpt%=%cpt% + 1
if %cpt% >= 9 goto fin
goto Pour_cpt_de_1_a_9
:fin
echo Fin...
pause >NUL
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Et Voici ce qu'il me réponds :
*01*.jpg était inattendu.
6 réponses
-
enlever le echo devant le rename pour effetuer le rename
C:> dir /b MyPhoto_001.gif MyPhoto_002.jpg C:> ..\bb rename MyPhoto_001.gif vacances_ete_2011-001.gif rename MyPhoto_002.jpg vacances_ete_2011-002.jpg Fin... C:> cd .. C:> type bb.bat @echo off setlocal enableDelayedExpansion set fichier=photo set nomFutur=vacances_ete_2011 set CD=. for /F "delims=" %%a in ('dir /b %CD%\*%fichier%*.gif %CD%\*%fichier%*.jpg') do ( for /f "delims=_ tokens=1,2" %%b in ('echo %%a') do ( set c=%%c echo rename %%a %nomFutur%-!c! ) ) echo Fin... pause >NUL C:> -
-
Bonjour,
La commande set sert à fixer les variables d'environnement . Le programme se termine généralement par l'annulation de la variable par exemple par
set variable=
Le programme ne comprend pas d'où viennent les *. D'autre par, il manque une commande for
Je crains que peu de batcheurs fous, comme il en existait dans les années 80-90, aient envie d"explorer ce programme -
En fait, la commande set peut s'utiliser pour initialiser une variable, mais par la suite, dans la boucle, il ne faut plus la prendre, mais l'instruction reste obscure
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
hello
peut on voir un exemple des noms de fichier avant et après -
Alors merci dubcek
Grâce à toi j'ai put avoir un résultat proche de ce que je voulais
Donc j'ai modifié ce que tu as fait pour pouvoir moduler complétement le prog via des variables d'environnement :
@echo off :Initialisation setlocal enableDelayedExpansion :: rentrez ici le nom commun à tous les fichiers à modifier set fichier=photo :: rentrez ici le nom des fichiers après modification set nomFutur=vacance_ete_2011 :: rentrez ici le séparateur entre le nom du fichier et le numéro set sep="_" set sep=%sep:1% :: rentrez ici l'extension de votre fichier set ext=jpg :: rentrez ici l'emplacement des fichiers (mettre . si dans le même fichier que le '.bat') set CD=. :Debut for /F "delims=" %%a in ('dir /b %CD%\*%fichier%*.%ext%') do ( for /f "delims=%sep% tokens=1,2" %%b in ('echo %%a') do ( set c=%%c rename %%a %nomFutur%-%%c.%ext% ) ) :Fin echo Fin... pause >NUL
Voili voulou pour ceux qui le veulent (il doit pas y en avoir beaucoup ^^)