IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Dupliquer et renommer des dossiers via Automator, Mise ne place d'une boocle
Options
ernstein
posté 11 Dec 2019, 16:32
Message #1


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 304
Inscrit : 3 Sep 2004
Lieu : Ploeren
Membre no 22 970



Bonjour à tous.

Je cherche à créer un script permettant de dupliquer un dossier qui est un template de projet, X fois en en rendant au passage le nom en séquentiel. j'ai vu qu'il était possible d'utiliser des boucles, mais ce n'est à mon sens pas super simple car ça boucle sur la totalité du script.

j'ai aussi testé de le séparer la boucle dans un processus séparé, mais ... le renommage en séquence ne fonctionne pas.

En gros j'ai un dossier source contenant une arbo de dossier, je voulais :

1) le sélectionner
2) en faire 20 copies renommées : ID 1, ID 2 ect..

Pour le coup... j'suis battu, avez-vous une idée pour arriver à mes fins ?

D'avance merci
Go to the top of the page
 
+Quote Post
PBell
posté 11 Dec 2019, 20:44
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir Ernstein,

Les commandes Applescript ou Automator ont souvent l'inconvénient de copier les éléments en gardant leur nom d'origine: par exemple copier le dossier A du dossier Desktop vers le dossier A du dossier Documents. Pour changer de nom en même temps que la copie, rien ne vaut une commande Unix !

Cette commande est simple : cp Dossier1 Dossier2.
En ajoutant le paramètre -R, on indique que la copie doit porter sur tout le contenu (-R = recursive)

En intégrant le tout dans une commande do shell script, on évite le passage par le Terminal : on peut utiliser Applescript.

Voici un petit script qui demande le dossier à copier et le copie autant de fois que souhaité.
J'ai initié la variable Dos_Prefix avec "ID " pour que les dossiers soient ID 1, ID 2,...tu peux changer cette valeur.

Il reste 2 points à expliquer :
- "POSIX Path of" transforme un chemin "Finder" en chemin Unix : Users:Moi:Desktop: --> Users/Moi/Documents
- quoted form ajoute de part et d'autre de l'expression des doubles quotes "" . En effet Unix interprète les espaces comme des séparateurs de paramètres ou de variables. En ajoutant les "" on demande à Unix de ne pas interpréter le contenu. C'est indispensable si tu as des chemins avec des espaces (comme ID 1 !!).

CODE
set Dos_Prefix to "ID " -- le prefix des noms de dossiers avant le compteur

set Dossier to choose folder "Selectionner le dossier à dupliquer"

-- saisie du nombre de copies (peut être ajouter une valeur maxi !
set Num_Copies to -1
repeat until (Num_Copies ≥ 0)
    set Choix to display dialog "Combien de copies souhaitez vous ?" default answer "5"
    try
        set Num_Copies to (text returned of Choix) as integer
    on error
        set Num_Copies to -1
        display alert "Veuillez saisir un nombre entier !"
    end try
end repeat

tell application "Finder" to set Dos_Parent to (container of Dossier) as string -- récupère le dossier parent du dossier sélectionné
set Unix_Dos_Dest to POSIX path of Dos_Parent -- converti en format Unix
set Unix_Dossier to quoted form of (POSIX path of Dossier)

repeat with I from 1 to Num_Copies
    set Dest to quoted form of (Unix_Dos_Dest & Dos_Prefix & I)
    do shell script "cp -R " & Unix_Dossier & " " & Dest
end repeat


Ce script est testé. J'ai mis beaucoup de commentaires pour que tu puisses l'adapter.
Bien sûr tu peux le mettre dans une action Automator "Executer un Applescript".
Tu peux même l'adapter dans Automator pour récupérer automatiquement le dossier sélectionné au lieu de le demander à l'utilisateur.

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
ernstein
posté 13 Dec 2019, 16:53
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 304
Inscrit : 3 Sep 2004
Lieu : Ploeren
Membre no 22 970



Merci @PBell, Je file tester ça smile.gif

Bonne journée
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 20:38