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

Windows Discussion :

Comment réorganiser automatiquement des milliers de sous-dossiers et fichiers ?


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Photographes
    Inscrit en
    Mars 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment réorganiser automatiquement des milliers de sous-dossiers et fichiers ?
    Bonjour à tous, je suis nouveau dans le forum.

    Je cherche depuis quelques temps un moyen pour réorganiser des milliers de sous-dossiers et fichiers pour faciliter la recherche...
    Je m'explique : depuis plusieurs années, je classe mes photos (jpg, psd, etc.) par date, puis sous-dossiers lieux. Maintenant, je veux copier tous les fichiers vers un nouvel emplacement en les classant par lieux puis par date (ce sont des versions différentes, je me débrouille pour les doublons), comme le schéma ci-dessous :

    Nom : plan_dossiers.jpg
Affichages : 278
Taille : 50,0 Ko

    Auriez-vous une idée pour traiter cela automatiquement ? Via un script peut-être ?
    Je connais quelques lignes de commandes MSDOS, mais je ne suis pas programmeur, ne peux pas aller plus loin......

    Merci d'avance.

  2. #2
    Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je pense Autohotkey sera utile avec ça.
    Faites un petit échantillon pour vous ici

    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
    DoTheWork(Path, Output)
    {
        NewLocation := Path "_New"
        If !FolderExist(NewLocation)
            FileCreateDir, % NewLocation
        Loop, Files, % Path "\*", D
        {
            Level_1 := A_LoopFileFullPath, Foldername := A_LoopFileName
            Loop, Files, % Level_1 "\*", D F
            {
                If FolderExist(A_LoopFileFullPath)
                {
                    If !FolderExist(NewLocation "\" A_LoopFileName) 
                        FileCreateDir, % NewLocation "\" A_LoopFileName
                    If !FolderExist(NewLocation "\" A_LoopFileName "\" Foldername)
                        FileCreateDir, % NewLocation "\" A_LoopFileName "\" Foldername
                    FileCopyDir, % A_LoopFileFullPath, % NewLocation "\" A_LoopFileName "\" Foldername, 1
                }
                Else
                {
                    FileName := SubStr(A_LoopFileName, 1, StrLen(A_LoopFileName) - StrLen(A_LoopFileExt) - 1)
                    If !FolderExist(NewLocation "\" FileName) 
                        FileCreateDir, % NewLocation "\" FileName
                    If !FolderExist(NewLocation "\" FileName "\" Foldername)
                        FileCreateDir, % NewLocation "\" FileName "\" Foldername
                    FileCopy, % A_LoopFileFullPath, % NewLocation "\" FileName "\" Foldername, 1
                }
            }
        }
    }
    Cette fonction bouclera les dossiers avec 2 niveaux de profondeur à partir du dossier principal afin que vous ayez plus de dossiers à l'intérieur ou des fichiers qu'ils vont être copiés inchangés.

    Voici le code complet + les instructions :

    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
    76
    ; --------------------------------------------Main--------------------------------------------------
    
    Gui, -SysMenu
    Gui, Font, s12 Bold, Calibri
    Gui, Add, Text, w300 +Center, % "Define a folder to work with!"
    Gui, Add, Edit, w300 +Center ReadOnly cRed vLocation
    Gui, Add, Button, w300, % "Define"
    Gui, Add, Text, w300 0x10
    Gui, Add, Button, w300, % "Apply"
    Gui, Show,, Re-Organise
    Return
    
    ButtonDefine:
        FileSelectFolder, Selected,, 3, % "Select a folder"
        If (Selected != "")
            GuiControl,, Location, % Selected
    
    Return
    
    ~^a::
    ButtonApply:
        Gui, Submit, NoHide
        If (Location != "") && FolderExist(Location)
        {
            DoTheWork(Location, Log)
            Msgbox, 64, % "Info", % "Everything must be done by now!"
        }
        Else
            Msgbox, 64, % "Info", % "Define a folder to work with!"
    Return
    
    Esc::
    GuiEscape:
    GuiClose:
    ExitApp
    
    ; ------------------------------------------Functions-----------------------------------------------
    
    FolderExist(Path)
    {
        If !InStr(FileExist(Path), "D")
            Return 0
        Else
            Return 1
    }
    
    DoTheWork(Path, Output)
    {
        NewLocation := Path "_New"
        If !FolderExist(NewLocation)
            FileCreateDir, % NewLocation
        Loop, Files, % Path "\*", D
        {
            Level_1 := A_LoopFileFullPath, Foldername := A_LoopFileName
            Loop, Files, % Level_1 "\*", D F
            {
                If FolderExist(A_LoopFileFullPath)
                {
                    If !FolderExist(NewLocation "\" A_LoopFileName) 
                        FileCreateDir, % NewLocation "\" A_LoopFileName
                    If !FolderExist(NewLocation "\" A_LoopFileName "\" Foldername)
                        FileCreateDir, % NewLocation "\" A_LoopFileName "\" Foldername
                    FileCopyDir, % A_LoopFileFullPath, % NewLocation "\" A_LoopFileName "\" Foldername, 1
                }
                Else
                {
                    FileName := SubStr(A_LoopFileName, 1, StrLen(A_LoopFileName) - StrLen(A_LoopFileExt) - 1)
                    If !FolderExist(NewLocation "\" FileName) 
                        FileCreateDir, % NewLocation "\" FileName
                    If !FolderExist(NewLocation "\" FileName "\" Foldername)
                        FileCreateDir, % NewLocation "\" FileName "\" Foldername
                    FileCopy, % A_LoopFileFullPath, % NewLocation "\" FileName "\" Foldername, 1
                }
            }
        }
    }
    1 - Téléchargez et installez Autohotkey
    2 - Créez un script Autohotkey ou créez un fichier texte et changez son extension de .txt à .ahk
    3 - Copiez-y le code.
    4 - Double-cliquez simplement sur le script pour l'exécuter.

    Voici une capture d'écran de l'application

    Nom : Screenshot_1.png
Affichages : 144
Taille : 26,6 Ko

    Vous pouvez également appuyer simplement sur Ctrl + a pour appliquer après avoir sélectionné le dossier cible.

    À la fin, au cas où quelque chose n'allait pas ou si vous ne pouviez pas installer Autohotkey, j'ai joint un échantillon independent complet, alors téléchargez-le et extrayez-le tout dans un dossier, puis ouvrez simplement Re-Organise.exe.

    Téléchargez ici ou ici.

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/02/2009, 10h33
  2. Comment créer automatiquement des raccourcis ?
    Par Moine dans le forum Débuter
    Réponses: 5
    Dernier message: 22/10/2007, 18h11
  3. Réponses: 14
    Dernier message: 04/06/2007, 22h43
  4. Comment demarrer automatiquement des daemons
    Par mariogarcia dans le forum Administration système
    Réponses: 14
    Dernier message: 12/06/2006, 20h34
  5. Réponses: 15
    Dernier message: 30/06/2005, 16h35

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