Dupliquer et renommer des dossiers via Automator, Mise ne place d'une boocle |
Bienvenue invité ( Connexion | Inscription )
Dupliquer et renommer des dossiers via Automator, Mise ne place d'une boocle |
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 |
|
|
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 |
|
|
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
Bonne journée |
|
|
Nous sommes le : 23rd April 2024 - 07:48 |