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
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 092
    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 092
    Points : 16 606
    Points
    16 606
    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.

  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 416
    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 416
    Points : 5 808
    Points
    5 808
    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

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