Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
706 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu][Batch] Renommer des fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][Batch] Renommer des fichiers

n°1276750
Dolu007
Posté le 04-01-2006 à 11:11:36  profilanswer
 

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
mood
Publicité
Posté le 04-01-2006 à 11:11:36  profilanswer
 

n°1277225
nglechau
Posté le 04-01-2006 à 21:35:03  profilanswer
 

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

n°1277230
masklinn
í dag viðrar vel til loftárása
Posté le 04-01-2006 à 21:42:54  profilanswer
 

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


---------------
Like performing brain surgery on someone who had a fatal stroke, you know there's no chance of survival but you want to open the head because you like to see the human brain — medhi
n°1277432
Dolu007
Posté le 05-01-2006 à 08:54:31  profilanswer
 

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

n°1277563
PierreC
Posté le 05-01-2006 à 13:34:25  profilanswer
 

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


---------------
Du tofu en Alsace : www.tofuhong.com
n°1277606
Dolu007
Posté le 05-01-2006 à 14:29:58  profilanswer
 

PierreC a écrit :

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


 
En bash s'il te plait

n°1277612
jagstang
Pa Capona ಠ_ಠ
Posté le 05-01-2006 à 14:33:55  profilanswer
 

bash != batch


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1277617
Dolu007
Posté le 05-01-2006 à 14:35:47  profilanswer
 

jagstang a écrit :

bash != batch


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

n°1277655
Dolu007
Posté le 05-01-2006 à 15:20:25  profilanswer
 

Personne sait le faire ?

n°1278080
Dolu007
Posté le 06-01-2006 à 11:34:00  profilanswer
 

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.
 

mood
Publicité
Posté le 06-01-2006 à 11:34:00  profilanswer
 

n°1278355
nglechau
Posté le 06-01-2006 à 19:30:58  profilanswer
 

Dolu007 a écrit :

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


 

nglechau a écrit :

Regarde l'aide de la commande
for


n°1278565
Michel2181
Posté le 07-01-2006 à 04:26:29  profilanswer
 

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
n°1280153
Dolu007
Posté le 10-01-2006 à 10:13:05  profilanswer
 

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
n°1281924
Dolu007
Posté le 12-01-2006 à 11:25:08  profilanswer
 

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......

n°1282072
nglechau
Posté le 12-01-2006 à 13:47:45  profilanswer
 

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

n°1282415
Dolu007
Posté le 12-01-2006 à 18:33:42  profilanswer
 

nglechau 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???

n°1282424
nglechau
Posté le 12-01-2006 à 18:45:59  profilanswer
 

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

n°1282675
Dolu007
Posté le 13-01-2006 à 09:18:10  profilanswer
 

nglechau 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
n°1283145
nglechau
Posté le 13-01-2006 à 17:04:14  profilanswer
 

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).

n°1284356
Dolu007
Posté le 16-01-2006 à 11:44:13  profilanswer
 

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

n°1284738
Dolu007
Posté le 16-01-2006 à 16:51:24  profilanswer
 

nglechau 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 ?

n°1284800
Dolu007
Posté le 16-01-2006 à 17:57:47  profilanswer
 

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

n°1284974
nglechau
Posté le 16-01-2006 à 20:51:34  profilanswer
 

:jap:

n°2304991
paulplatt
Posté le 28-08-2017 à 17:46:18  profilanswer
 

try BatchRenameFiles Tool program
BatchRenameFiles.org

n°2305489
@ttil@
Q, retire ce bonnet !
Posté le 08-09-2017 à 18:17:33  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu][Batch] Renommer des fichiers

 

Sujets relatifs
[Résolu]AbstractCollection[VBA-Access (2002)] [Résolu] Requête VBA sur une table jointe
(résolu) vba excel : probleme de typage string[resolu]stocker des données en memoire
[resolu] recherche + le suivant + ... voir autre message[résolu tout seul] Udate avec jointure... J'ai un trou
[RESOLU] - Aide sur mysql_connect[RESOLU]Connaitre le nom ou le numero de sheet active?
[resolu] recherche la plus rapide[Résolu] éviter la complication avec explode()
Plus de sujets relatifs à : [Résolu][Batch] Renommer des fichiers



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR