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 :

Script renommage dossier via boite de dialogue


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Script renommage dossier via boite de dialogue
    Bonjour à tous,

    J’aimerai faire un script qui permettrait de déplacer des dossiers d’un chemin A vers un chemin B avec au passage un renommage dossier par dossier.

    Petites complications :

    1- Je souhaites qu’une question soit posée à l’utilisateur pour chaque dossier afin que celui-ci choisisse le nom de destination (exemple : Comment doit être renommé le dossier actuellement nommé xxxx ? )
    2- Les dossiers contenus dans le chemin A n’ont jamais les mêmes noms
    3- Les dossiers contenus dans le chemin A contiennent des fichiers qu’il ne faut pas renommer

    D'avance merci pour votre aide.

    Zeuch

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Salut;

    Essaie avec ce
    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
    Option Explicit
     
    Dim fso, rep, fd, dossier_source, dossier_cible, subFD, sName
     
        dossier_source = "C:\Temp\"
        dossier_cible  = "C:\TMP\"
        Set fso = CreateObject("Scripting.FileSystemObject")
     
          Set fd = fso.GetFolder(dossier_source)
          If fd.SubFolders.Count = 0 Then
             MsgBox "Il n'y a aucun dossier dans le répertoire " & UCase(fd.Path)
               WScript.Quit 0
            End If
          For each subFD In fd.SubFolders
               sName = subFD.Name
                 Rep = InputBox(sName,"Déplacement et renommage de dossiers",sName & "_" & Replace(FormatDateTime(Date,2),"/","_"))
                 If rep = "" Then WScript.Quit 0
                 fso.MoveFolder subFD.Path, dossier_cible & Rep
          Next
    Il permet le déplacement en suggérant un nouveau nom(en fait l'ancien nom auquel on ajoute la date de déplacement).
    Tu peux taper un nom selon ton besoin.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Merci pour ton aide c'est super!

    Deux questions colmplèmentaires:

    1- comment peut on mettre en répertoire cible un lecteur réseau ou un chemin UNC ?
    2- A t on la possibilité de changer le format de la date pour mettre l'année puis le mois et enfin le jour (YYYYMMDD) ?


    Merci de ton aide !

    Zeuch

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Pour la question 2, le script devient :
    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
    Option Explicit
     
    Dim fso, rep, fd, dossier_source, dossier_cible, subFD, sName, tmp
     
        dossier_source = "C:\Temp\"
        dossier_cible  = "C:\TMP\"
        Set fso = CreateObject("Scripting.FileSystemObject")
     
          Set fd = fso.GetFolder(dossier_source)
          If fd.SubFolders.Count = 0 Then 
             MsgBox "Il n'y a aucun dossier dans le répertoire " & UCase(fd.Path)
             WScript.Quit 0
          End If
     
          tmp = year(now) & "_" & Right("00" & Month(now),2) & "_" & Right("00" & day(now),2)
     
          For each subFD In fd.SubFolders
               sName = subFD.Name
               Rep = InputBox("Le dossier actuel à déplacer est : " & UCase(sName),"Déplacement et renommage de dossiers",sName & "_" & tmp)
               If rep = "" Then WScript.Quit 0
               fso.MoveFolder subFD.Path, dossier_cible & Rep
          Next
    Pour la question 1, si j'ai bien compris, tu dois mapper un lecteur réseau ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    WshNetwork.MapNetworkDrive "Z:", "\\NomServeur\ShareName"
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Pour la question 2 c'est parfait.
    Pour la 1 en fait le lecteur réseau est déjà connecté sur mon poste (N: par exemple qui pointe sur \\serveur\share\).
    Mais si je mets au niveau du script dossier_cible = "N:\" ça ne fonctionne pas.

  6. #6
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Il faut mettre le nom de partage \\serveur\share\ et pas la lettre qui le représente.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Malheureusement ça ne fonctionne pas alors que j'ai tous les droits sur le share:

    Nom : Screen Shot 03-28-14 at 04.00 PM.PNG
Affichages : 64
Taille : 17,5 Ko

  8. #8
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Peut-être qu'il faut un mot de passe.

    As-tu accès à ce lecteur réseau ?
    UAC activé ou non ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  9. #9
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    oui j'ai accès à ce partage sans mot de passe.
    L'UAC est désactivé sur mon poste.

  10. #10
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Là, je ne vois vraiment pas d'où peut provenir l'erreur.

    Se pourrait-il que ce soit dans le code ?!
    Montre un peu ce que tu as fait.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

Discussions similaires

  1. [XL-2000] Enregister classeur avec un nom choisi par utilisateur via boite de dialogue
    Par Shikam dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/05/2010, 14h36
  2. Inserer du texte via boite de dialogue
    Par jeromer64 dans le forum Powerpoint
    Réponses: 9
    Dernier message: 30/08/2008, 07h16
  3. Réponses: 8
    Dernier message: 31/05/2007, 08h23
  4. Boite de dialogue selection dossier
    Par cuba1393 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/03/2007, 15h37
  5. VBA-Excel, boite de dialogue "sélectionner un dossier"
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2006, 09h23

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