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

AppleScript Discussion :

Script de suppression de sous dossiers


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Par défaut Script de suppression de sous dossiers
    Bonjour à tous,

    J'aimerais créer un script qui permette, si j'ai un fichier avec beaucoup de sous dossiers en cascade, de supprimer tous les sous dossiers et de garder les fichiers de ces sous dossiers dans mon dossier de base.
    Le nombre de niveau de sous dossier, et les noms de ces dossiers et fichiers seraient inconnus.
    Je débute sur applescript et les tutos/cours que j'ai vu ne parlent pas de cela.

    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Il y a deux approches possibles :
    1) par récursivité : pour un dossier D1 on traite chaque item : si l'item est un fichier, on le copie vers le dossier parent de D1, si c'est un sous dossier, on appelle cette même routine en lui donnant pour D1 la valeur de ce sous-dossier. Le script va s'auto-executer quelque soit le niveau d'arborescence.
    2) en sélectionnant d'emblée tous les fichiers sur tous les niveaux pour les recopier dans le dossier parent.

    Voici un script pour la seconde méthode.
    Il suppose que tu as un dossier DR (racine) qui contient des dossiers D1, D2,...
    Chaque dossier D1, D2, contient une quelconque structure de fichiers , dossiers et sous-dossiers, sans limite de sous niveau.
    Le script va remettre le tout à plat sur 2 niveaux : Toujours le dossier DR avec ses dossiers D1, D2, ... Mais dans chaque dossier D1,.. tous les fichiers seront listés directement, sans plus de sous dossiers.

    A Chaque ligne, j'ai mis une note et en fin de script une explication pour chaque note :
    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
    -- script de supression des dossiers/ sous dossier avec copies des fichier au niveau le plus haut
    
    on run
        tell application "Finder"
    activate-- 1
            set theDossRacine to ((choose folder with prompt "Choisissez le dossier racine :" without invisibles) as alias) as string -- 2
            set theDossParentList to (every folder of foldertheDossRacine) as alias list-- 3
            repeat with theDossParentAlias in theDossParentList-- 4
                set theDossParent to theDossParentAlias as string-- 5
    move every file of entire contents of foldertheDossParenttofoldertheDossParent-- 6
    delete every folder of foldertheDossParent-- 7
            end repeat
        end tell
    end run
    
    
    -- 1 : Appel et activation de l'application "Finder" pour effectuer toutes les opérations
    -- 2 : Choix du dossier racine contenant tous les dossiers parents
    -- 3 : Récupération de la liste des dossiers parents contentus dans le dossier racine
    -- 4 : Boucle traitant chaque dossier parent listé à l'étape précédente
    -- 5 : Récupération du dossier parent et transformation au format "string"
    -- 6 : Déplacement de tous les fihiers contentus dans l'ensemble de l'arborescence vers le premier niveau du dossier parent
    -- 7 : Suppression (déplacement vers la corbeille) de tous les dossier présents au premier niveau de chaque dossier parent
    Attention cependant : si le dossier D0 contient 2 sous-dossiers D1 et D2, chacun contenant un fichier nommé P.JPG, le script donnera une erreur car il ne pourra pas mettre les 2 'P.JPG' dans le même dossier D0 (même nom).
    Lorsque j'avais été confronté à ce problème, je l'avais résolu par un autre script qui transformait les noms : D0 contenait à la fin 2 fichiers dont les noms sont 'D1-P.JGP' et 'D2-P.JPG'. Ainsi pas de doublons dans le dossier D0.

    Cordialement

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Par défaut
    Bonjour

    Je te remercie de m'avoir répondu si rapidement. J'ai essayé ton script, il marche parfaitement, il manquait juste des espaces entre "folder" et le nom du folder, mais j'ai réussi a trouver seul.

    Merci encore!

Discussions similaires

  1. [PowerShell] Déplacement de fichiers depuis sous dossier puis suppression des sous dossiers
    Par wazalop dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 02/02/2016, 03h09
  2. Suppression de sous-dossiers
    Par defluc dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 24/06/2008, 22h08
  3. Réponses: 6
    Dernier message: 15/04/2008, 19h46
  4. [batch] suppression des sous-dossiers
    Par mathieu_r dans le forum Windows
    Réponses: 1
    Dernier message: 12/03/2007, 21h53
  5. Script de suppression d'archives sous WINDOWS
    Par alxkid dans le forum Administration
    Réponses: 3
    Dernier message: 18/08/2004, 12h11

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