[Résolu][Batch] Renommer des fichiers

Renommer des fichiers [Résolu][Batch] - Shell/Batch - Programmation

Marsh Posté le 04-01-2006 à 11:11:36    

Bonjour, avant toute chose, je ne connais pratiquement rien en batch mais je m'y attelle.
 
Je dispose d'un répertoire Ex: C:mon_rep
Ce répertoire contient une multitude de fichier qui sont en faite des photos de 2 types : JPEG et BMP
 
Ma volonté est de pouvoir créer un fichier batch qui fait ceci :
 
Je voudrais pouvoir créer un répertoire temporaire Ex: C:temp
Je voudrais alors copier les photos du répertoire C:mon_rep dans le répertoire C:temp puis ensuite les renommer de la façon suivante:
"une dénomination que j'ai choisi" + "nom photo" + "extension(jpg ou bmp)"
 
Voilà. Savez vous le faire ?
Merci d'avance.
 
Je suis à votre écoute pour toutes questions !

Message cité 1 fois
Message édité par Dolu007 le 17-01-2006 à 09:11:00
Reply

Marsh Posté le 04-01-2006 à 11:11:36   

Reply

Marsh Posté le 04-01-2006 à 21:35:03    

Salut,
 
Oui, c'est possible. Et très simple même. Regarde l'aide de la commande
for

Reply

Marsh Posté le 04-01-2006 à 21:42:54    

C'est vraiment obligatoire de le faire en batch [:petrus dei]
 
Nan parce que pour ce genre de trucs ya Ant Renamer qui fonctionne très bien :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 05-01-2006 à 08:54:31    

oui oui
hi hi
quelqu'un a un script à me proposer ? ou un site qui explique bien ?

Reply

Marsh Posté le 05-01-2006 à 13:34:25    

Avec quel language de script ? dos ? bash ? vbs ?


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 05-01-2006 à 14:29:58    

PierreC a écrit :

Avec quel language de script ? dos ? bash ? vbs ?


 
En bash s'il te plait

Reply

Marsh Posté le 05-01-2006 à 14:33:55    

bash != batch


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 05-01-2006 à 14:35:47    

jagstang a écrit :

bash != batch


 
Oh oui pardon tout à fait. C'est en BATCH qu'il me le faut

Reply

Marsh Posté le 05-01-2006 à 15:20:25    

Personne sait le faire ?

Reply

Marsh Posté le 06-01-2006 à 11:34:00    

Voilà mon code :
 

Code :
  1. @echo off
  2. md c:\TEST\TEMP
  3. xcopy c:\TEST\print\*.* c:\TEST\TEMP
  4. cd c:\TEST\TEMP\
  5. rename *.* Q2ICTC2*.*


 
 
Le problème est qu'il me renomme seulement le premier fichier par Q2ICTC2.jpg par exemple mais ne garde pas mon nom de fichier. Comment faire pour garder ce nom de fichier. Pour passer de "photo.jpg" à "Q2ICTC2photo.jpg" dans mon cas.
 

Reply

Marsh Posté le 06-01-2006 à 11:34:00   

Reply

Marsh Posté le 06-01-2006 à 19:30:58    

Dolu007 a écrit :

Comment faire pour garder ce nom de fichier. Pour passer de "photo.jpg" à "Q2ICTC2photo.jpg" dans mon cas.


 

wackevat a écrit :

Regarde l'aide de la commande
for


Reply

Marsh Posté le 07-01-2006 à 04:26:29    

Dolu007 a écrit :

Voilà mon code :
 

Code :
  1. @echo off
  2. md c:\TEST\TEMP
  3. xcopy c:\TEST\print\*.* c:\TEST\TEMP
  4. cd c:\TEST\TEMP\
  5. rename *.* Q2ICTC2*.*


 
 
Le problème est qu'il me renomme seulement le premier fichier par Q2ICTC2.jpg par exemple mais ne garde pas mon nom de fichier. Comment faire pour garder ce nom de fichier. Pour passer de "photo.jpg" à "Q2ICTC2photo.jpg" dans mon cas.


 
Voici une solution simple dans un fichier nommé ici TEST.BAT
 

Code :
  1. @echo off
  2. if "%1" == "" goto syntaxe
  3. set new=%1
  4. if exist c:\test\temp\nul goto suite
  5. md c:\test\temp
  6. :suite
  7. for %%x in (*.jpg) do copy c:\test\print\%%x c:\test\temp\%new%%%x
  8. set new=
  9. goto fin
  10. :syntaxe
  11. echo Syntaxe: TEST.BAT + le paramètre
  12. echo.
  13. echo Exemple: TEST Q2ICTC2
  14. echo.
  15. :fin


 
Les fichiers seront nommés Q2ICTC2 (paramètre passé en ligne de commande) suivis de leur nom d'origine (ex: Q2ICTC2photo.jpg)
 
 
Note:
Utiliser copy au lieu de xcopy qui va poser la question : Fichier ou Répertoire où il faudra taper "F" à chaque fichier.  
 
Cordialement et meilleurs voeux à tous :)

Message cité 1 fois
Message édité par Michel2181 le 07-01-2006 à 04:32:31
Reply

Marsh Posté le 10-01-2006 à 10:13:05    

Michel2181 a écrit :

Voici une solution simple dans un fichier nommé ici TEST.BAT
 

Code :
  1. @echo off
  2. if "%1" == "" goto syntaxe
  3. set new=%1
  4. if exist c:\test\temp\nul goto suite
  5. md c:\test\temp
  6. :suite
  7. for %%x in (*.jpg) do copy c:\test\print\%%x c:\test\temp\%new%%%x
  8. set new=
  9. goto fin
  10. :syntaxe
  11. echo Syntaxe: TEST.BAT + le paramètre
  12. echo.
  13. echo Exemple: TEST Q2ICTC2
  14. echo.
  15. :fin


 
Les fichiers seront nommés Q2ICTC2 (paramètre passé en ligne de commande) suivis de leur nom d'origine (ex: Q2ICTC2photo.jpg)
 
 
Note:
Utiliser copy au lieu de xcopy qui va poser la question : Fichier ou Répertoire où il faudra taper "F" à chaque fichier.  
 
Cordialement et meilleurs voeux à tous :)


 
Ben ça ne fonctionne pas. J'ai bien vérifier les chemins il n'y a pas de soucis la dessus. Mais le fichier bat ne fait rien.
A aucun moment le dossier TEMP est créé et donc le copie des images n'est pas faite.
Par ailleurs, dans ta solution, tu proposes de saisir manuellement le préfixe mais je préfère que ça soit fait de façon automatique sans passer par l'utilisateur.


Message édité par Dolu007 le 10-01-2006 à 10:22:41
Reply

Marsh Posté le 12-01-2006 à 11:25:08    

Voilà le nouveau code que je propose :
 

Code :
  1. @echo off
  2. md c:\TEST\TEMP
  3. xcopy c:\TEST\print\*.jpg c:\TEST\TEMP
  4. xcopy c:\TEST\print\*.bmp c:\TEST\TEMP
  5. cd c:\TEST\TEMP\
  6. set new=Q2ICTC2
  7. for %%x in (*.jpg) do rename *.* %new%%%x.*
  8. for %%x in (*.bmp) do rename *.* %new%%%x.*


 
Le soucis c'est qu'il tourne en boucle en me disant :
"Le nom de fichier existe déjà, ou le fichier est introuvable"
 
La copie des fichiers marche parfaitement bien
Par contre il renomme certaines photos comme il faut mais c'est jamais les même ni le même nombre. J'ai du mal à comprendre......

Reply

Marsh Posté le 12-01-2006 à 13:47:45    

Code :
  1. for %%x in (*.bmp *.jpg) do rename "%%~fx" "%new%%%~nxx"

Reply

Marsh Posté le 12-01-2006 à 18:33:42    

wackevat a écrit :

Code :
  1. for %%x in (*.bmp *.jpg) do rename "%%~fx" "%new%%%~nxx"



 
Super ça marche mais juste un petit truc. La première JPG et la première BMP ont un suffixe ajouté 2 fois !!!!!!!  
Exemple : MON_SUFFIXE_MON_SUFFIXE_photo.jpg
 
Comment remédier à ça???

Reply

Marsh Posté le 12-01-2006 à 18:45:59    

Ils n'ont pas été renommés depuis ton premier script par hasard ?

Reply

Marsh Posté le 13-01-2006 à 09:18:10    

wackevat a écrit :

Ils n'ont pas été renommés depuis ton premier script par hasard ?


 
 
NON NON. Le dossier TEMP je l'ai supprimé et j'ai vérifié le nom de mes photos original pas de doute ! Les premières photos de chaque type (jpg et bmp) sont renomées 2 fois.


Message édité par Dolu007 le 13-01-2006 à 09:19:18
Reply

Marsh Posté le 13-01-2006 à 17:04:14    

Etrange en effet.
 
En tout cas, on peut contourner le truc en optimisant l'algorithme ;)  

Code :
  1. for %%x in (*.bmp *.jpg) do copy "%%~nxx" "temp/%new%%%~nxx"


depuis le dossier source (au lieu de temp).

Reply

Marsh Posté le 16-01-2006 à 11:44:13    

Super ça marche parfaitement
 
Un grand merci à toi nglechau !

Reply

Marsh Posté le 16-01-2006 à 16:51:24    

wackevat a écrit :

Etrange en effet.
 
En tout cas, on peut contourner le truc en optimisant l'algorithme ;)  

Code :
  1. for %%x in (*.bmp *.jpg) do copy "%%~nxx" "temp/%new%%%~nxx"


depuis le dossier source (au lieu de temp).


 
Juste un dernier truc. J'aimerais parcourir avec ma boucle FOR que les fichiers avec 2 caractères.  
Exemple : EA.jpg, IG.bmp, IC.jpg...  
Exemple ne rentrant pas en compte : EAE.jpg, PHOTO.jpg
 
Comment puis-je faire ?

Reply

Marsh Posté le 16-01-2006 à 17:57:47    

J'ai trouvé c'est le ? qui remplace n'importe lequel des caractères
 
Un grand merci pour tout nglechau !

Reply

Marsh Posté le 16-01-2006 à 20:51:34    

:jap:

Reply

Marsh Posté le 28-08-2017 à 17:46:18    

try BatchRenameFiles Tool program
BatchRenameFiles.org

Reply

Marsh Posté le 08-09-2017 à 18:17:33    

Dolu007 a écrit :

Bonjour, avant toute chose, je ne connais pratiquement rien en batch mais je m'y attelle.

 

Je dispose d'un répertoire Ex: C:mon_rep
Ce répertoire contient une multitude de fichier qui sont en faite des photos de 2 types : JPEG et BMP

 

Ma volonté est de pouvoir créer un fichier batch qui fait ceci :

 

Je voudrais pouvoir créer un répertoire temporaire Ex: C:temp
Je voudrais alors copier les photos du répertoire C:mon_rep dans le répertoire C:temp puis ensuite les renommer de la façon suivante:
"une dénomination que j'ai choisi" + "nom photo" + "extension(jpg ou bmp)"

 

Voilà. Savez vous le faire ?
Merci d'avance.

 

Je suis à votre écoute pour toutes questions !


mv ? :whistle:


Message édité par Marc le 15-09-2017 à 15:07:47

---------------
Techno-science.net: Actualité des sciences et techniques
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed