Renommer en masse [Résolu]

Messages postés
110
Date d'inscription
dimanche 11 août 2002
Dernière intervention
21 juillet 2006
- - Dernière réponse : cs_wbr
Messages postés
110
Date d'inscription
dimanche 11 août 2002
Dernière intervention
21 juillet 2006
- 4 févr. 2006 à 19:29
Dans un dossier j'ai plusieurs centaines de fichiers qui commencent avec un chiffre suivit de leurs noms. Ex:

1001 - nom1.ext
1002 - nom2.ext
...

Mais le problème est que je veux classer ces fichiers par ordre alphabétique et que les renommer à la main prendrais bien trop de temps. Comme je n'ai pas touché au vbs depuis environ 5ans je demande l'aide d'un programmeur qui accepterais bien de me faire un petit script pour renommer tous les fichiers d'un même répertoire en effaçant leurs préfixes (soit les 7 premiers caractères). Si quelqun pourrait prendre le temps de m'aider j'apprécirais beaucoup!
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
110
Date d'inscription
dimanche 11 août 2002
Dernière intervention
21 juillet 2006
3
Merci
Je viens de trouver le problème. Certains fichiers était renommer 2fois, alors pour résoudre le problème, sur tous mes fichiers j'ai mit l'attribut +Archive et dans mon script, j'enlève l'attribut une fois le fichier renommer. Cela permet d'empêcher que le même soit renommer 2fois.

Voici mon code:

Dim Fold
Dim Fil
Dim fso
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fold = fso.GetFolder("C:\windows\bureau\testfold")
For Each Fil In Fold.Files
Set Att = fso.GetFile(Fil.Path)
If Not (Att.Attributes) = 0 Then
Fil.Name = Mid(Fil.Name, 8, Len(Fil.Name) - 6)
Att.Attributes = 0
End if
Next
Set Fold = Nothing
Set fso = Nothing
Msgbox "Done"

Merci cs_wbr 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Messages postés
1490
Date d'inscription
mercredi 5 février 2003
Dernière intervention
3 décembre 2007
0
Merci
Le mieux serait que tu le fasses toi même tu ne crois pas !!!

A mon avis, évite le VBS... fait plutôt ça en VB ou en VBA (macro) dans Word ou Excel selon ce que tu as sous la main. Ensuite, regarde l'aide sur l'objet FSO (FileSystemObject). Il permet, justement, de manipuler facilement les fichiers pour faire ce genre de trucs. Cet objet va t'amener vers d'autres objets et collections (style Folder, File, ...). Sert toi des exemples dans l'aide : ils sont très bien. C'est très facile à utiliser.
Mais sinon, il y a toujours les fonctions & instructions internes au VB(A).

Le but du jeu, avec ton FSO, est de récupérer un objet collection Folder selon ton Path (chemin d'accès, ton dossier quoi!). Ensuite, il suffit de parcourir la collection via For Each obj In collection.

Pour ce qui concerne l'enlèvement des 7 premiers caractère... si tu es bien sûr de ton coup (que c'est toujours les 7 premiers, qu'il n'y a pas d'exceptions, ...), utilise la fonction MID$(txt, deb, longueur). Style Mid$(varNomDuFichier, 8, Len(varNomDuFichier) - 7).

Voilà, maintenant, à toi de jouer

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
Pas mieux, alors je vais faire un petit exemple:

En ajoutant Microsoft Scripting Runtime comme reference a ton projet.

Tu fais un truc de ce genre:

Dim fso As New FileSystemObject
Dim Fold As Folder
Dim Fil As File


Set Fold = fso.GetFolder("C:\tmp\test")
For Each Fil In Fold.Files
Fil.Name = Mid(Fil.Name, InStrRev(Fil.Name, " ") + 1)
Next
Set Fold = Nothing
Set fso = Nothing


ATTENTION il n y a aucun test de fait sur le resultat, si le fichier renommer existe deja, il y aura des erreurs, mais bon c est juste un petit exemple de depart.

@+
Julien
Messages postés
110
Date d'inscription
dimanche 11 août 2002
Dernière intervention
21 juillet 2006
0
Merci
Tout d'abord merci pour les réponses. Ensuite, pour répondre a ScSami, oui tu as bien raison, le mieux serait de le faire moi-même mais comme je l'ai expliquer, la dernière fois que j'ai touché à la programmation je devais avoir dans les 11-12ans alors ça remonte à un bon bout de temps.

Et jrivet je te remercie beaucoup pour ton aide mais a tu fais ce script pour qu'il fonctionne sous VB ou VBS? J'ai mit ton code dans un fichier .vbs mais il m'affiche une erreur à la 1er ligne, charactère 9, soit le A de Dim As
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
Re,

VBS... j avais oublie,

- Enleve tout les AS ..... laisse juste les DIM NomVariable.
- Remplace cette ligne: Set Fso = New FileSystemObject par
Set Fso = CreateObject("Scripting.FileSystemObject")

Et apres reteste.

@+
Julien
Messages postés
110
Date d'inscription
dimanche 11 août 2002
Dernière intervention
21 juillet 2006
0
Merci
Bon alors j'ai fait les changements mais le script renommais en gardant seulement la fin du fichier, j'ai donc modifié la ligne avec Mid et voici le nouveau code:

Dim Fold
Dim Fil
Dim Fso
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fold = fso.GetFolder("C:\windows\bureau\testfold")
For Each Fil In Fold.Files
Fil.Name = Mid(Fil.Name, 8, Len(Fil.Name) - 6)
Next
Set Fold = Nothing
Set fso = Nothing

J'ai fait plusieurs tests en remplaçant Fil.Name = Par Msgbox. Chaque fois le nom était renommer parfaitement, les 7 premiers caractères avaient disparues du nom. Mais lorsque j'ai remit la fonction pour renommer, j'ai eu des résultats imcompréhensibles..

Sur 4 fichiers, seulement 2 ont été renommer correctements j'ai eu ces résultats:

1006 - Matchbox Cross Town Heroes (E).gba
x Cross Town Heroes (E).gba

1007 - Spirit - Der wilde Mustang - Auf der Suche nach Homeland (G).gba
- Der wilde Mustang - Auf der Suche nach Homeland (G).gba

1011 - Buffy - Im Bann der Daemonen - Koenig Darkhuls Zorn (G).gba
Buffy - Im Bann der Daemonen - Koenig Darkhuls Zorn (G).gba

1016 - Weekend Miljonairs (NL).gba
Weekend Miljonairs (NL).gba

Quelqun aurait-il une idée du problème?
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
Re,

Il faut que toi meme tu sois sur de la nomenclature a suivre pour renommer les fichiers. est de qu ils suivent TOUS le meme modele,...


@+
Julien
Messages postés
110
Date d'inscription
dimanche 11 août 2002
Dernière intervention
21 juillet 2006
0
Merci
Oui, ils ont tous les 7 premiers caractères en trop. D'ailleurs les noms de fichiers ci-haut donnent un bon apperçu du modèle des noms des fichiers.
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
Lut,

j ai repris ton code, sans le changer ca marche niquel (j ai nomme mes fichier de la meme facon que toi.)

@+
Julien

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.