IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

renommer fichier dans tableau


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut modifier Nom de Fichier
    Bonjour,

    Je souhaite modifier les noms de fichier contenus dans un répertoire en commençant par le dernier de la liste

    j'ai trouver un début de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub LectRep (stR )
     For each oFld in  oFSO.GetFolder(stR).SubFolders
       Wscript.Echo "--------------- " & oFld.PAth & "-----------------"
       ListeFichier (oFld.PATH)   
       LectRep oFld.PATH
     Next
    end sub
    '
    ' Listing des fichiers du répertoire
    '
    Sub ListeFichier (stR)
     For each oFl in  oFSO.GetFolder(stR).Files
       Wscript.Echo oFl.Name	
     Next
    End sub
    Merci pour votre Aide

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Vous pouvez Consulter La Comment déplacer,renommer un fichier?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut
    Le Problème que je rencontre n'est pas à proprement le renommage des fichier mais plutôt comment le faire en partant du dernier jusqu'au premier.
    Merci

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour, tu nous dis pas trop qu'elle est la règle pour renommer tes fichiers...

    Je suis pas sur non plus que l'ordre d'apparition de tes fichiers dans ta liste soit toujours le même ...

    Une solution est peu-être de stocker la liste des fichiers à renommer dans un tableau voir : les variables tableaux puis de parcourir ce tableau grâce à une boucle For du dernier élément ( voir ubound...) jusqu'au premier ( 0)



  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut
    peut être est il possible de récupérer les noms de fichier, de les placer dans un fichier.txt puis de traiter les noms dans le fichiers text ???

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut
    non ma méthode n'est pas cohérente, je ne peux pas réutiliser les fichier dans ce cas.
    je suis dans l'obligation de passer par un tableau.

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut renommer fichier dans tableau
    Bonjour

    je me permet de refaire mon message car le précédant était trop fouilli.

    donc dans le script ci-dessous, je tri les fichiers présents dans un répertoire dans un tableau.

    je souhaite renommer les fichiers de l'emplacement 12 à l'emplacement 1

    sachant que le fichier sur emplacement 12 aura toujours un nom fixe comme toto.png, 11 toujours lulu.png et ainsi de suite jusqu'à emplacement 1

    Merci de votre aide

    voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    '---lister les fichiers du répertoire ---
    Sub TriRepertoire()
     Dim fso, fichier, fileItem
     Dim i, imax, z, valeur, cible, liste
    ' WScript.Echo TriRepertoire,,"Enumération" & Rep
    Rep = "D:\partage\Courbes\Images"
     
     Set fso = CreateObject("Scripting.FileSystemObject")
     
     imax = 0
     'début de l'énumération
     For Each fichier In fso.GetFolder(Rep).Files
     Set fileItem = fso.GetFile(fichier)
     
     imax = imax + 1
     ReDim Preserve Tableau(2, imax)
     Tableau(1, imax) = Fichier.Name
     Tableau(2, imax) = FileItem.DateCreated
     
     '---trier les fichiers par ordre décroissant de création ---
     Do
     Valeur = 0
     For i = 1 To imax - 1
     If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
     For z = 1 To 2
     Cible = Tableau(z, i)
     Tableau(z, i) = Tableau(z, i + 1)
     Tableau(z, i + 1) = Cible
     Next
     Valeur = 1
     End If
     Next
     Loop While Valeur = 1
     Set fileItem = nothing
     Next
     
     'Affichage du résultat classé
     For i = 1 To imax
     WScript.Sleep 3000
     liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr
     Wscript.Echo liste &i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& Rep
     WScript.Echo liste
     If i = imax Then WScript.Echo liste &"Liste du répertoire" &Space(3) &Rep
     
     Next
     
     Set fso = nothing
    End sub

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonsoir,


    et il te manque quoi ?

    Plutôt que faire une boucle affichant ta liste de fichiers avec date , numéro..
    essai de faire un boucle affichant ancien nom et nouveau nom du fichier ..

    pour compter de 12 à 1 c'est comme de 1 a 12 mais avec un pas de -1 (step -1) ..



    et plus haut tu un lien vers un code pour renommer un fichier, c'est bon cela ?

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut
    Bonjour BBIL,

    je n'ai pas réussi à incorporer la modification des noms de fichier dans la boucle.
    je ne maitrise pas l'utilisation des tableaux.
    mais j'ai pu trouver une solution de contournement.
    comme je n'ai que 12 fichiers, je les ai entrés en dur.

    cependant je suis preneur d'un coup de main pour avoir un affichage des anciens et nouveaux noms de fichier.

    Merci

    mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     '---lister les fichiers du répertoire ---
    Sub TriRepertoire()
     Dim oFSO
     Set oFSO = CreateObject("Scripting.FileSystemObject")
     Dim fso, fichier, fileItem
     Dim i, imax, z, valeur, cible, liste
    ' WScript.Echo TriRepertoire,,"Enumération" & Rep
    Rep = "D:\partage\Courbes\Images"
     
     Set fso = CreateObject("Scripting.FileSystemObject")
     
     imax = 0
     'début de l'énumération
     For Each fichier In fso.GetFolder(Rep).Files
     Set fileItem = fso.GetFile(fichier)
     
     imax = imax + 1
     ReDim Preserve Tableau(2, imax)
     Tableau(1, imax) = Fichier.Name
     Tableau(2, imax) = FileItem.DateLastModified
     
     
     '---trier les fichiers par ordre décroissant de création ---
     Do
     Valeur = 0
     For i = 1 To imax - 1
     If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
     For z = 1 To 2
     Cible = Tableau(z, i)
     Tableau(z, i) = Tableau(z, i + 1)
     Tableau(z, i + 1) = Cible
     Next
     Valeur = 1
     End If
     Next
     Loop While Valeur = 1
     Set fileItem = nothing
     Next
     
     'Affichage du résultat classé
     For i = 1 To imax
     WScript.Sleep 3000
     liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr
     Wscript.Echo liste &i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& Rep
     WScript.Echo liste
     'If i = imax Then WScript.Echo liste &"Liste du répertoire" &Space(3) &Rep
     Next
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 12),"D:\partage\Courbes\Images\St_Croix_04STECB9001_X.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 11),"D:\partage\Courbes\Images\St_Croix_04STECB9001_Y.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 10),"D:\partage\Courbes\Images\St_Tulle_Campus_04STETB7002_X.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 9),"D:\partage\Courbes\Images\St_Tulle_Campus_04STETB7002_Y.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 8),"D:\partage\Courbes\Images\Systeron_04SYSTB9001_X.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 7),"D:\partage\Courbes\Images\Systeron_04SYSTB9001_Y.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 6),"D:\partage\Courbes\Images\Curban_UH_05TALLB9001_X.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 5),"D:\partage\Courbes\Images\Curban_UH_05TALLB9001_Y.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 4),"D:\partage\Courbes\Images\Serre_Ponçon_05ESPIB9001_X.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 3),"D:\partage\Courbes\Images\Serre_Ponçon_05ESPIB9001_Y.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 2),"D:\partage\Courbes\Images\Vinon_UH_83VINOB9001_X.png"
    oFSO.MoveFile "D:\partage\Courbes\Images\"&Tableau(1, 1),"D:\partage\Courbes\Images\Vinon_UH_83VINOB9001_Y.png"
     
     Set fso = nothing
    End sub

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Par défaut
    Je pense que mes questions de novice vous exaspères.
    Mon script fonctionne tant bien que mal, à moi de l'améliorer avec le temps.

    Je tenais tout de même à tous vous remercier pour votre aide toujours précieuse.

    une fois le script optimisé, je le placerai dans les contributions.

    Merci !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Renommer fichier dans dossiers(remplacer chaine de caracteres)
    Par raph_rf dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 01/05/2017, 22h06
  2. Problème stockage de fichier dans tableau
    Par Youry dans le forum Débuter
    Réponses: 7
    Dernier message: 03/06/2009, 17h28
  3. Charger un fichier dans tableau d'entier
    Par nico0007 dans le forum Langage
    Réponses: 12
    Dernier message: 17/04/2008, 11h30
  4. Réponses: 4
    Dernier message: 10/10/2003, 18h04
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo