# [Automator] Intégrer un applescript dans un service Automato



## nidwan (19 Septembre 2012)

Bonjour,

J'essaye de créer un service permettant de renommer séquentiellement une série de fichiers en SxxExx, puis de créer un sous-dossier par fichier ayant le même nom que celui-ci (un sous dossier SxxE01, un sous-dossier SxxE02, ...), pour enfin déplacer chaque fichier dans son sous-dossier respectif.

J'ai déjà fait pas mal de recherches et voici où j'en suis:

*1.* A l'aide d'Automator, j'ai fait un service renommant séquentiellement les fichiers sélectionnés dans le Finder.
Voici le workflow: https://www.dropbox.com/s/11n66w6gdeuxbq6/workflow1.jpg

*2.* J'ai aussi trouvé un script Applescript qui récupère des fichiers contenu dans un dossier choisi par l'utilisateur à l'aide d'une boîte de dialogue, qui crée un sous-dossier par fichier et les renomme d'après le nom de chaque fichier:


```
on run
    open {choose folder with prompt "Quel dossier à trier?"}
end run

on open t_folders
    --display dialog "Patientez S.V.P." buttons {"OK"} with icon 0 giving up after 2 with title "Création de dossiers"
    repeat with t_item in t_folders
        if (t_item as string) ends with ":" then -- c'est un dossier
            tell application "Finder" to tell folder t_item
                repeat with x in (get files of it)
                    set {nom, t_ext} to {name, name extension} of x
                    if t_ext is not "" then set nom to text 1 thru -((length of t_ext) + 2) of nom
                    try
                        tell (make new folder at it)
                            set f to move x to it -- déplace le fichier dans le nouveau dossier
                            set name to nom -- renomme le dossier
                        end tell
                    end try
                end repeat
            end tell
        end if
    end repeat
    activate
    display dialog "C'est terminé" buttons {"Quitter"} with icon 1 giving up after 10 with title "Création de dossiers"
end open
```
Je précise que je n'y connais strictement rien en Applescript...

Quoi qu'il en soit, il me semble avoir toutes les étapes pour créer mon service. Je pensais donc intégrer l'Applescript dans mon workflow Automator à l'aide de la commande "Exécuter un script AppleScript". Oui mais...

*A.* J'aimerais supprimer les boîtes de dialogue du script afin qu'il reprenne automatiquement les données de mon workflow Automator (emplacement où il doit créer les sous-dossiers, etc.).
*B.* De plus, je ne sais pas du tout où et comment intégrer le script (ai-je mentionné le fait que je n'y connaissais rien en AppleScript?..) Par exemple, en intégrant un script à Automator, celui-ci me propose par défaut ce code:


```
on run {input, parameters}
    
    (* Your script goes here *)
    
    return input
end run
```

Je ne sais pourquoi, mon instinct me pousserait à copier le code à la place de (* Your script goes here *)... Mais alors je devrais supprimer les balises on run et end run sur le script original? Les modifier? Avez-vous remarqué que je n'y connaissais rien en AppleScript?... 


En résumé, mes deux questions sont les points *A.* et *B.* ci-dessus.
Je vous remercie infiniment de l'aide que vous pourrez m'apporter!


----------

