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 :

Déplacer des fichiers dans des sous dossier selon leur extension


Sujet :

VBScript

  1. #1
    Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Déplacer des fichiers dans des sous dossier selon leur extension
    Bonjour;
    je souhaite déplacer les fichiers de mon flash disque dans des sous dossiers appropriés selon leurs extensions, avec l'outil VBSEdit
    Voilà donc ce que j'ai fais :

    déclarer l'objet fso, et la collection
    Créer un objet folder qui pointe vers la racine du disque amovible
    créer les sous dossiers (images , textes, vidéos)
    créer une collection files de la propriété de folder ( et col = files.folder)
    En suite je dois parcourir la collection et pour chaque fichier le déplacer dans son sous dossier approprié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For each file in files.folder
    If (fso.getextensionname (file.path)) = " txt" "docx" Then 
      file.move ; [destination]
    End If
     If (fso.getextensionname (file.path)) = "jpg" "png" Then 
    file.move ; [destination]
    End If 
    Next
    Est-ce le code cité est le bon code ? Je vous prie de me communiquer le bon code !

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Salut, bienvenue sur DVP

    Pas loin, le 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
    Dim DossierSource, QuelExtention, DestinationTxtDocs, DestinationJpgPng
    Dim fso, Files, file
     
    DossierSource = "C:\DossierSource"
    DestinationTxtDocs = DossierSource & "\DossierPourTxtOuDocs\"
    DestinationJpgPng = DossierSource & "\DossierPourJpgOuPng\"
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Files = fso.GetFolder("C:\DossierSource")
     
    If Not fso.FolderExists(DestinationTxtDocs) Then
        fso.CreateFolder (DestinationTxtDocs)
    End If
    If Not fso.FolderExists(DestinationJpgPng) Then
        fso.CreateFolder (DestinationJpgPng)
    End If
     
    For Each file In Files.Files
        QuelExtention = LCase(fso.GetExtensionName(file.Path))
        Select Case QuelExtention
            Case "txt", "docx"
                file.Move DestinationTxtDocs & file.Name
            Case "jpg", "png"
                file.Move DestinationJpgPng & file.Name
        End Select
    Next
    Set fso = Nothing
    Set Files = Nothing
    ATTENTION de bien paramétrer les lignes 4, 5 et 6 avec tes propres paramètres.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut voilà le bon 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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Set fso=createobject("Scripting.FileSystemObject")
     
    x=inputbox("Veuillez entré le nom d'un lecteur : " )
     
    fso.createfolder(x&":\VBS")
    fso.createfolder(x&":\VBS\Musique")
    fso.createfolder(x&":\VBS\Videos")
    fso.createfolder(x&":\VBS\Script")
    fso.createfolder(x&":\VBS\Images")
    fso.createfolder(x&":\VBS\Documents")
    fso.createfolder(x&":\VBS\Archives")
    fso.createfolder(x&":\VBS\PDF")
    fso.createfolder(x&":\VBS\Programmes")
    fso.createfolder(x&":\VBS\Autres Fichiers")
     
    Set lect=fso.GetFolder(x&":\")
     
    Set col=lect.Files
     
    for each F in col
     
    Ext=fso.GetExtensionName(f.name)
     
    if ext="vbs" then
    F.Move (x&":\VBS\Script\")
    else
     
         if ext="mp3" or ext="wma" or ext="dat" or ext="cda" then 
         F.Move (x&":\VBS\Musique\")
         else  
     
               if ext="exe" or ext="com" then 
               F.Move (x&":\VBS\Programmes\")
               else
     
                      if ext="jpg" or ext="jpeg" or ext="gif" or ext="bmp" then 
                      F.move (x&":\VBS\Images\")
                      else
     
                              if ext="avi" or ext="mpg" or ext="mpeg" or ext="mp4" or ext="flv" then
                              F.move (x&":\VBS\Videos\")
                              else
     
                                     if ext="txt" or ext="doc" or ext="docx" or ext="ps" or ext="xls" or ext="xlsx" or ext="ppt" or ext="pptx" then
                                     F.Move (x&":\VBS\Documents\")
                                     else
     
                                             if ext="rar" or ext="zip" then 
                                             F.Move (x&":\VBS\Archives\")
                                             else
     
                                                     if ext="pdf" then 
                                                     F.Move (x&":\VBS\PDF\")
                                                     else
     
     
     
     
                                                   F.Move (x&":\VBS\Autres Fichiers\")
     
         end if
     
               end if
     
                      end if
     
                              end if
     
                                     end if
     
                                             end if
     
                                                        end if
     
                                                                    end if

  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 805
    Points
    5 805
    Par défaut
    Il y a quelque chose que je n'ai pas saisi : Où devrait-on déplacer les fichiers ? Est-ce vers la même unité vers une autre ?

    D'autre part, un code indenté permet de bien comprendre, or ici on voit un code indenté à l'envers avec un grand nombre de conditions imbriquées; chose qui rend ledit code très peu clair.

    A mon humble avis, le choix de ProgElecT(SALUT) pour Select Case est bien judicieux dans ce cas de figure;

    Voici une modification du même code avec recherche auto du lecteur USB :
    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
    Option Explicit
    Dim fso, x, col, lect, F,  drv, Ext
     
    Set fso=createobject("Scripting.FileSystemObject")
     
      For Each drv In fso.Drives
          If drv.DriveType = 1  Then 
               If drv.IsReady Then
                    Set x = fso.GetDrive(drv)
                    x = drv.DriveLetter
                    Exit For
                Else 
                    x=inputbox("Veuillez entrer la lettre d'un lecteur : " )
                    If x = "" Or Len(x) > 1 Then
                     MsgBox "Veuillez réessayer en donnant une unité de lecteur valide"
                     WScript.Quit 
                    End If
                End If
            End If
        Next
    On Error Resume Next    ' Juste pour ne pas avoir l'erreur : le fichier(dossier) existe déjà
                            ' si on exécute le code une 2ème fois
    fso.CreateFolder(x & ":\VBS")
    fso.CreateFolder(x & ":\VBS\Musique")
    fso.CreateFolder(x & ":\VBS\Videos")
    fso.CreateFolder(x & ":\VBS\Script")
    fso.CreateFolder(x & ":\VBS\Images")
    fso.CreateFolder(x & ":\VBS\Documents")
    fso.CreateFolder(x & ":\VBS\Archives")
    fso.CreateFolder(x & ":\VBS\PDF")
    fso.CreateFolder(x & ":\VBS\Programmes")
    fso.CreateFolder(x & ":\VBS\Autres Fichiers")
     
    Set lect=fso.GetFolder(x & ":\")
     
    Set col=lect.Files
     
    for each F in col
        Ext=fso.GetExtensionName(f.name)
         Select Case LCase(Ext)
             Case "vbs" : F.Move (x & ":\VBS\Script\")
             Case "mp3", "wma", "dat", "cda" :  F.Move (x & ":\VBS\Musique\")
             Case "exe", "com" : F.Move (x & ":\VBS\Programmes\")
             Case "jpg", "jpeg", "gif", "bmp" : F.move (x & ":\VBS\Images\")
             Case "avi", "mpg", "mpeg", "mp4", "flv" : F.move (x & ":\VBS\Videos\")
             Case "txt", "doc", "docx", "ps", "xls","xlsx", "ppt", "pptx" : F.Move (x & ":\VBS\Documents\")
             Case "rar", "zip" : F.Move (x & ":\VBS\Archives\")
             Case "pdf" : F.Move (x & ":\VBS\PDF\")
             Case Else : F.Move (x & ":\VBS\Autres Fichiers\")
         End Select
    Next
    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. Réponses: 12
    Dernier message: 11/05/2012, 11h17
  2. Creer des fichiers dans un sous repertoire
    Par maxmarie dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 16/11/2007, 15h30
  3. [VBA-E]Y-a-t-il des fichiers dans les sous-rep de mon rep ?
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2007, 22h28
  4. rechercher des fichiers dans tous les dossiers
    Par nitteo dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2006, 18h08
  5. Chemin d'accès des fichiers dans des sous rep
    Par Le Veilleur dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/11/2004, 14h37

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