Résolu - Probleme sur script de renomage en masse

Résolu
Dodley Messages postés 8 Statut Membre -  
Dodley Messages postés 8 Statut Membre -
Bonjour,
Ayant besoin de renommer des dossiers en masse (passage en minuscule), j'ai trouvé un petit script.
Lorsque je lance celui, il fait ce qu'il est censé faire sauf qu'il crée un espace devant le nom du dossier ce qui me gene.
Ne connaissant rien dans ce domaine, je vous remercie par avance.
Voici le code :

set fsys = createobject("scripting.filesystemobject")
yourfolder = "d:\tmp"
for each item in fsys.getfolder(yourfolder).subfolders
item.name = " "&lcase(item.name)
next

Merci par avance.

3 réponses

  1. Yoda
     
    Bonjour

    Il suffit de retirer l'espace.

    item.name = lcase(item.name)

    A+
    1
  2. Dodley Messages postés 8 Statut Membre
     
    Merci de la réponse. j'ai appliqué la modification que tu m'a donné, mais il y a une erreur , le script me dit que le fichier existe déja.

    Merci de ton aide
    0
    1. Yoda
       
      effectivement, je crois que windows ne différencie pas les minuscules des majuscules dans les noms de fichiers
      exemple:
      Test.xls, TEST.XLS, TesT.Xls designent le même fichier.

      Que veux tu faire exactement.
      0
  3. Dodley Messages postés 8 Statut Membre
     
    En fait j'ai sur un hdd externe plus de 900 dossier (d'ou l'envie de passer par un script), qui sont pour certains nommer en majuscule, d'autres en minuscules, et d'autres encore avec la premiere lettre en majuscule et le reste en minuscule.

    J'aurai souhaité les nommer tous de la meme facon, c'est à dire en minuscule, ou encore avec la premiere lettre en majuscule.

    De temps en temps, j'arrive à adapter des scripts à mes petits besoins, mais pas cette fois ci .

    Merci encore pour ton aide ;-)
    0
    1. Yoda
       
      Essaye en rajoutant la ligne item.name=LTrim(item.name)
      en fait, on renome en ajoutant un blanc devant pour etre sur que le fichier n'existe pas déjà
      et on renomme une deuxième fois en supprimant les blanc devant le nom.

      set fsys = createobject("scripting.filesystemobject")
      yourfolder = "d:\tmp"
      for each item in fsys.getfolder(yourfolder).subfolders
      item.name = " "&lcase(item.name)
      item.name=LTrim(item.name)
      next

      Si ça ne mache pas, essaye avec deux boucles

      set fsys = createobject("scripting.filesystemobject")
      yourfolder = "d:\tmp"
      for each item in fsys.getfolder(yourfolder).subfolders
      item.name = " "&lcase(item.name)
      next
      for each item in fsys.getfolder(yourfolder).subfolders
      item.name=LTrim(item.name)
      next

      A+
      0
    2. Dodley Messages postés 8 Statut Membre
       
      Merci beaucoup de ton aide, ta première solution fonctionne parfaitement.
      Encore merci je vais gagner des Giga-secondes !!!!
      0