# Déplacer des fichiers dans des dossiers existants



## raphaelrs1 (13 Novembre 2019)

Bonjour,

Je chercher à créer une action Automator qui consiste à ranger des fichiers dans différents dossiers en fonction des éléments qu'ils contiennent.





Mon process se fait comme suit, à savoir que je récupère les éléments du Finder qui m'intéressent, applique le filtre, puis les déplace dans le dossier concerné. Cette boucle se répétant X fois en changeant X fois les paramètres.

Mon problème intervient au moment où la recherche d'élément retourne un résultat nul. Le fenêtre suivante s'affiche :




Après l'apparition de cette fenêtre, le processus stoppe.

Je voudrais qu'Automator passe outre cette erreur et continue à trier en fonction des conditions suivantes. En cherchant un peu j'ai vu qu'il fallait certainement que je passe par Applescript pour y imposer mes conditions, mais je n'y connais absolument rien.

Si quelqu'un peut m'épauler ?

En vous remerciant,


----------



## zeltron54 (14 Novembre 2019)

Bonjour,

Je ne connaît pas bien automator, et je ne vois pas de solution simple à ton problème avec ce logiciel.

Le mieux serais de tout faire en applescript. pour cela il faudrait avoir un peu plus d'éléments ...

Tu as un dossier avec plusieurs sous-dossiers contenant chacun ou pas, des fichiers à trier.
Il faut donc connaître les critères de tri, (sur le nom, sur l'extension ou ...?) et déplacer ces fichiers dans des dossiers respectifs reconnaissables à leurs noms ou ...?

Pour établir la liaison entre fichiers et dossiers, on peut soit l'écrire en dur dans le script, soit faire un petit fichier texte qui décrit les liaisons...

Si tu me fournis ces infos, je peux essayer de te préparer ce script.


----------



## raphaelrs1 (14 Novembre 2019)

Bonjour,

Merci pour ta réponse.

J'ai un dossier qui contient tous les éléments à trier (pas de sous-dossier)
Disons qu'il se trouve sous : Raphael\Dropbox\Fiches à trier

A l'intérieur il y a des fichiers de ce type :
20191110 - NOM1 Prénom1 - Patient1.pdf
20191110 - NOM2 Prénom2 - Patient2.pdf
20191110 - NOM1 Prénom1 - Patient3.pdf
20191110 - NOM3 Prénom3 - Patient4.pdf
20191110 - NOM3 Prénom3 - Patient5.pdf

Je veux que :
- tous les fichiers contenant les mentions NOM1 Prénom1 aillent dans le dossier Raphael\Dropbox\Fiches\NOM1 Prénom1
- tous les fichiers contenant les mentions NOM2 Prénom2 aillent dans le dossier Raphael\Dropbox\Fiches\NOM2 Prénom2
- tous les fichiers contenant les mentions NOM3 Prénom3 aillent dans le dossier Raphael\Dropbox\Fiches\NOM3 Prénom3

Le problème avec Automator ici, par exemple, si dans le dossier source initial, il ne trouve aucun fichier contant NOM2 Prénom2, il n'ira pas trier les fichiers contenant NOM3 Prénom3 et ainsi de suite.

Meci,


----------



## zeltron54 (14 Novembre 2019)

Voilà un tout petit script qui déplace tes fichiers.
A VERIFIER ligne 1 et 2 que les chemins du dossier fiches à trier et du dossier fiches (contenant les dossiers patients) soient bon et avec le format MACOS (complet avec séparateur  ":" ).
J' ai ajouté un commentaire à la fin de chaque ligne expliquant ce qu'elle fait.


```
set chemin to "Macintosh HD:Users:Raphael:Dropbox:fiches à trier:" as alias -- chemin du dossier à trier

set destination to "Macintosh HD:Users:Raphael:Dropbox:fiches:" -- chemin de dossier destination
tell application "Finder"
    set les_fichiers to files of chemin --récupère tous les fichiers à trier
    repeat with chaque_fichier in les_fichiers --répète avec chaque fichier trouvé
        set le_fichier to name of chaque_fichier as string --récupère le nom du fichier
        set lenom to word 2 of le_fichier -- extrait le nom
        set leprenom to word 3 of le_fichier -- extrait le prenom
        set ladestination to destination & lenom & " " & leprenom & ":" as string -- fabrique le chemin du dossier destination
        set original to chemin & le_fichier as string -- fabrique le chemin du fichier en cours
        move original to ladestination -- déplace le fichier
    end repeat
    
    display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"} -- préviens fin du script
end tell
```


----------



## raphaelrs1 (14 Novembre 2019)

Merci, j'ai voulu essayer mais je n'y arrive pas du tout, j'ai tapé ceci dans Applescript via Automator.
D'autre part, j'ai l'impression que ce script crée à chaque fois un nouveau dossier. Ce n'est pas ce que je souhaite, les fichiers doivent partir dans des dossiers existants.


_on run {input, parameters}

          set chemin to "Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilité:Édition:Fiches à trier:" as alias
         set destination to "Macintosh D:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilité:Édition:"
         tell application "Finder"
         set les_fichiers to files of chemin
         repeat with chaque_fichier in les_fichiers
         set le_fichier to name of chaque_fichier as string
         set lenom to MBAPPE of le_fichier
         set leprenom to Kylian of le_fichier
         set ladestination to destination & lenom & " " & leprenom & ":" as string
         set original to chemin & le_fichier as string
         move original to ladestination
         end repeat
         display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}

return input
end run_


On va essayer autrement et je vais tenter de donner le max d'informations

Les fichiers à trier se trouvent ici :
Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilité:Édition:Fiches à trier:

Dans ce dossier se trouvent les fichiers suivants :
20191015 - MBAPPE Kylian - NEYMAR.pdf
20191015 - Cabinet du PSG - MBAPPE Kylian - NEYMAR.pdf
20191112 - VARANE Raphael - SERGIO.pdf
20191113 - VARANE Raphael - RAMOS.pdf
20191113 - LAMA Bernard - MANDANDA.pdf
20191114 - MATUIDI Blaise - RONALDO.pdf

Les fichiers contenant MBAPPE Kylian doivent aller dans le dossier Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilitéentistes:MBAPPE Kylian:Fiches de traçabilité:2019:

Les fichiers contenant Cabinet du PSG MBAPPE Kylian doivent aller dans le dossier Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilitéentistes:Cabinet du PSG:Fiches de traçabilité:MBAPPE Kylian:2019: *(attention ici car il faudra appliquer un ordre de tri)*

Les fichiers contenant LAMA Bernard doivent aller dans le dossier Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilitéentistes:LAMA Bernard:Fiches de traçabilité:2019:

Les fichiers contenant MATUIDI Blaise doivent aller dans le dossier Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilitéentistes:MATUIDI Blaise:Fiches de traçabilité:2019:

Les fichiers contenant VARANE Raphael doivent aller dans le dossier Macintosh HD:Utilisateurs:maximeentaire Dropboxentaire:Fiches de traçabilitéentistes:VARANE Raphael:Fiches de traçabilité:2019:

et ainsi de suite

Si un jour par hasard, il n'y a pas de fichier contenant MBAPPE Kylian, le script doit continuer et trier les autres noms.

Est-ce que cela te semble plus clair ?


----------



## raphaelrs1 (14 Novembre 2019)

Je n'ai pas fait exprès mais tous les smileys sont fait " : D " sans espace


----------



## zeltron54 (14 Novembre 2019)

Le script que je t'ai mis ne ce sert pas d'automator, il est autonome.
Donc à copier tel quel dans l'éditeur de script qui se trouve dans application--> Utilitaires.

Si tu as des problèmes pour renseigner le chemin tu peux
remplacer la 1ere ligne en tapant:
set chemin to POSIX file "
puis tu fais un glisser déposé de ton dossier fiches à trier puis à la suite tu tapes:
" as alias

Remplacer la 2ieme ligne en tapant:
set chemin to POSIX file "
puis tu fais un glisser déposé de ton dossier Edition puis à la suite tu tapes:
" as alias

Ceci seulement si tu as des problèmes pour indiquer le chemin.

Ensuite ce script s'utilise en cliquant sur la petite flêche en haut à gauche marquée Exécuter.

C' est tout !

Si tout fonctionne on verra comment en faire un exécutable.


----------



## raphaelrs1 (14 Novembre 2019)

Alors je viens de tester. Il retourne un message d'erreur dès le premier fichier analysé même si le nom / prénom sont bien présents dans le nom du fichier


----------



## zeltron54 (14 Novembre 2019)

En relisant tes chemins je viens de voir qu'il y a 2 sous-dossiers (Fiches de traçabilité:2019
le script actuel est prévu pour copier dans le dossier (Nom prenom)
donc  il faudra modifier le script pour qu'il ajoute ces 2 sous-dossier au chemin de la destination.


----------



## zeltron54 (14 Novembre 2019)

Il est un peu tard pour moi.
Si tu es libre demain avec un peu de temps on fera quelques tests pour voir d'ou vient l'erreur, car chez moi ça fonctionne.

Fais signe sur ce post


----------



## raphaelrs1 (14 Novembre 2019)

On essaie demain. Merci et bonne nuit


----------



## zeltron54 (15 Novembre 2019)

Bonjour,
Après analyse de ton post.

1 - le chemin destination écrit dans ton script est différent de celui donné dans tes explications :
...... Fiches de traçabilité:Édition:" dans le script
.....Fiches de traçabilité:Dentistes:" dans les explications

2- Autre incompatibilité tu dis: (Les fichiers contenant MBAPPE Kylian doivent aller dans le dossier Macintosh HD:Utilisateurs:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:MBAPPE Kylian:Fiches de traçabilité:2019:)
et (Les fichiers contenant Cabinet du PSG MBAPPE Kylian doivent aller dans le dossier Macintosh HD:Utilisateurs:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:Cabinet du PSG:Fiches de traçabilité:MBAPPE Kylian:2019:)

Lors du contrôle le script va trouvé (MBAPPE Kylian) dans les 2 fichiers donc ?


mes questions:
1 - Dans les fichiers , le nom prénom sont t' ils  toujours en  2 mots et placés juste après (20191015 -)
2 - Tu as 2 fichiers (20191112 - VARANE Raphael - SERGIO.pdf   et   20191113 - VARANE Raphael - RAMOS.pdf) doivent ils aller tous les 2 dans le même dossier ?
3 - les fichiers (Cabinet du PSG...) ce nom est' il toujours en 3 mots  ou ???   et y a t' il d'autre nom à traiter différemment du nom patient ?
4 - le dossier de destination est nommé 2019 ? que se passera t' il en 2020 ?

Ces questions, parce que le script balaye le dossier des fichiers, et pour chaque fichier il récupère le 2ieme et 3ieme mot du nom du fichier, qui sont les nom et prénom du patient, puis fabrique le chemin de destination en ajoutant à la fin du chemin renseigné au début, ce nom, prénom et de plus maintenant il faudra ajouter  :)Fiches de traçabilité:2019:)
Par contre pour les fiches (Cabinet du PSG), il va trouver comme nom et prenom (cabinet du) !

Il faut donc être sur de ce qu'il va pouvoir trouver (y a t'il d'autre nom possible juste après le 20191015 -) ?

Voilà, Beaucoup de questions mais nécessaire si on veux bien prendre en compte tous les cas de figure .


----------



## macomaniac (15 Novembre 2019)

Bonjour *zeltron*

Afin d'échapper la conversion des :) en  => je te suggère le procédé suivant :

- tu inscrits à la main la balise [plain] (crochets compris) en tête de ton texte (juste avant donc : *Après analyse de ton post.*) & tu inscrits à la main la balise [/plain] (crochets compris) à la fin de ton texte (juste après donc : *tous les cas de figure .*)​


----------



## macomaniac (15 Novembre 2019)

[Note : j'ai édité mon message en *BB code* => afin que les balises citées puissent apparaître à l'affiche sans exercer d'action.]


----------



## zeltron54 (15 Novembre 2019)

Coucou *macomaniac *
 

Merci pour l 'astuce .  Bonne journée à toi


----------



## zeltron54 (15 Novembre 2019)

Je viens de refaire un nouveau script qui tiens compte des nouvelles infos concernant les chemins et du dossier (cabinet du xxx)
Restera le problème du dossier 2019 (en 2020)

A tester


```
set chemin to "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Édition:Fiches à trier:" as alias -- chemin du dossier à trier

set destination to "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:" as alias -- chemin de dossier destination


tell application "Finder"
    set les_fichiers to files of chemin --récupère tous les fichiers à trier
    repeat with chaque_fichier in les_fichiers --répète avec chaque fichier trouvé
        set le_fichier to name of chaque_fichier as string --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {" - "} -- defini le separateur
        set lepremier to text item 2 of le_fichier -- extrait le premier terme Nom prenom ou cabinet du xxx
        set ledeuxieme to text item 3 of le_fichier -- extrait le deuxieme terme nom prenom si premier = cabinet...
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        
        
        if lepremier contains "cabinet" then
            set ladestination to destination & lepremier & ":Fiches de traçabilité:" & ledeuxieme & ":2019"
        else
            set ladestination to destination & lepremier & ":Fiches de traçabilité:2019:"
        end if
        
        set original to chemin & le_fichier as string -- fabrique le chemin du fichier en cours
        
        move original to ladestination -- déplace le fichier
    end repeat
    
    display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"} -- préviens fin du script
end tell
```


----------



## raphaelrs1 (15 Novembre 2019)

zeltron54 a dit:


> Bonjour,
> Après analyse de ton post.
> 
> 1 - le chemin destination écrit dans ton script est différent de celui donné dans tes explications :
> ...



Je réponds point par point aux messages reçus :

1. Je sais mais j'avais pris soin de modifier ton script initial. Je cherche d'abord à comprendre l fonctionnement

2. Il y a en réalité 2 cas de figure :
- Le dentiste est un indépendant, dans ce cas le fichier aura le format suivant "date - nom prénom - patient.pdf
- Le dentiste travaille dans un établissement, dans ce cas, le fichier aura le format suivant "date - établissement - nom prénom - patient.pdf

Mais il est possible qu'un dentiste exerce dans plusieurs établissements différents, dans le cas de notre cher Mbappe, celui-ci a son propre cabinet et fait des vacations dans un centre. Les fiches ne vont pas au même endroit.
Il convient donc d'envoyer les fiches contenant le nom de l'établissement d'abord avant d'envoyer celles de son cabinet. Dans le cas inverse, des mauvaises fiches pourraient se trouver au même endroit.

3. Non il peut y avoir 1, 2, 3, parfois 10 mots même.

4. En 2020 je changerai les formules et les chemins de destination.

Je ne pense pas qu'un script récupérant les 2e et 3e mot du fichier est la bonne solution car ces données sont variables.
Il conviendrait de prédéfinir pour chaque cas la condition de tri et de l'envoyer en fonction.


----------



## raphaelrs1 (15 Novembre 2019)

zeltron54 a dit:


> Je viens de refaire un nouveau script qui tiens compte des nouvelles infos concernant les chemins et du dossier (cabinet du xxx)
> Restera le problème du dossier 2019 (en 2020)
> 
> A tester
> ...



Je vais essayer de comprendre tout ça et de le tester tout à l'heure. Merci pour ton aide en tout cas ! Je me sens moins bête depuis 2 jours


----------



## zeltron54 (15 Novembre 2019)

J'ai trouvé 2 petits Bug dans mon script que je viens de corriger.
De plus j'ai ajouté un contrôle de l'existence du fichier destination. s'il le trouve , il déplace sinon il te crée un fichier (Log erreur transfert.txt) sur le bureau qui te donnes le chemin qu'il n'a pas trouvé.


```
set chemin to "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Édition:Fiches à trier:" as alias -- chemin du dossier à trier

set destination to "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:" -- chemin de dossier destination


tell application "Finder"
    set les_fichiers to files of chemin --récupère tous les fichiers à trier
    repeat with chaque_fichier in les_fichiers --répète avec chaque fichier trouvé
        set le_fichier to name of chaque_fichier as string --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {" - "} -- defini le separateur
        set lepremier to text item 2 of le_fichier -- extrait le
        set ledeuxieme to text item 3 of le_fichier -- extrait le
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
       
       
        if lepremier contains "cabinet" then
            set ladestination to destination & lepremier & ":Fiches de traçabilité:" & ledeuxieme & ":2019:"
        else
            set ladestination to destination & lepremier & ":Fiches de traçabilité:2019:"
        end if
       
        set original to chemin & le_fichier as string -- fabrique le chemin du fichier en cours
       
        if ladestination exists then
            move original to ladestination -- déplace le fichier
        else
            set lelog to open for access ((path to desktop folder as text) & "Log erreur transfert.txt") as text with write permission
            write " je n'ai pas trouvé le dossier " & ladestination & (ASCII character 13) & return to lelog starting at eof
            close access lelog
        end if
       
       
       
    end repeat
   
    display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"} -- préviens fin du script
end tell
```


----------



## raphaelrs1 (15 Novembre 2019)

Alors j'ai testé tout ça. Il y a du bon et c'est déjà bien.
Beaucoup de fichiers sont partis dans les dossiers
Beaucoup de fichiers sont aussi restés dans le dossier source initial (généralement ceux dont le nom du cabinet dépasse 3 mots)
Il n'y a pas eu de création de dossier (et c'est une très bonne chose d'ailleurs parce que je ne veux pas)

En résumé c'est encore à perfectionner mais c'est déjà pas mal du tout !


----------



## zeltron54 (15 Novembre 2019)

As tu un fichier texte donnant les chemins des fichiers non transférés pour analyse?


Le nouveau script traite le fichier de la sorte:

Il  découpe le nom en morceaux, le signe " - " étant considéré comme le séparateur. exemple: 20191015 - Cabinet du PSG - MBAPPE Kylian - NEYMAR.pdf est découpe en 4 morceaux.

Ensuite il récupère le morceau 2 soit : "Cabinet du PSG" et le morceau 3 soit: "MBAPPE Kylian"

si le premier morceau contient le mot Cabinet il met le chemin destination "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:Cabinet du PSG:Fiches de traçabilité:MBAPPE Kylian:2019"

sinon il met le chemin Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:MBAPPE Kylian:Fiches de traçabilité:2019:


Voila le fonctionnement actuel, avec ces détails tu peux peut-être voir ce qui à foirer dans le transfert

A savoir que un fichier non transféré n'arrête pas le script qui continu sur le fichier suivant.


----------



## raphaelrs1 (15 Novembre 2019)

C'est ce que j'avais cru comprendre.

Certains cabinet ont des noms comprenant des " - ". Ce pourquoi ils n'ont pas été transférés.

Par exemple, j'ai :
- DENTEXELANS - Les Épars
- DENTEXELANS - Beauvais
- DENTEXELANS - Levallois

Ceux-ci sont restés dans le dossier.

Je copie-colle certaines erreurs :

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Institut Ortho-Dentaire de l'île Seguin:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Institut Ortho-Dentaire de l'île Seguin:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Institut Ortho-Dentaire de l'île Seguin:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Institut Ortho-Dentaire de l'île Seguin:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:KHAYAT-SAAL Julia:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:KHAYAT-SAAL Julia:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:KHAYAT-SAAL Julia:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:N.H Dentaire:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:N.H Dentaire:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet des docteurs JABIN & HAURET:Fiches de traçabilité:HAURET Jean-Baptiste:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet des docteurs JABIN & HAURET:Fiches de traçabilité:JABIN Paul:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet des docteurs JABIN & HAURET:Fiches de traçabilité:JABIN Paul:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet des docteurs JABIN & HAURET:Fiches de traçabilité:JABIN Paul:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTALPLAN:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTALPLAN:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTALPLAN:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTALPLAN:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTEXELANS:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet dentaire des TOULEUSES:Fiches de traçabilité:CHOUDHARY Shaila:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet des docteurs JABIN & HAURET:Fiches de traçabilité:JABIN Paul:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Cabinet du docteur SALEM Sylvain:Fiches de traçabilité:SERRA Joao Patricio:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTALPLAN:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistesENTALPLAN:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:Institut Ortho-Dentaire de l'île Seguin:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:KHAYAT-SAAL Julia:Fiches de traçabilité:2019:

 je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilitéentistes:N.H Dentaire:Fiches de traçabilité:2019:


----------



## zeltron54 (15 Novembre 2019)

Effectivement tous ceux qui ont un "-" dans le nom, que ce soit dans le bloc texte 2 ou 3 , ne peuvent pas être transféré, puisque le nom ne peut plus correspondre à un dossier.
Le signe & pose également problème car en programmation il est interprété comme une commande d'addition.

Par contre j'en ai vu quelque un, pour lequel je ne comprend pas (à vérifier si le dossier existe) par exemple:

Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilité:Dentistes:Clinique dentaire de GONESSE:Fiches de traçabilité:2019:
ou
Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilité:Dentistes:DENTALPLAN:Fiches de traçabilité:2019:
ou
Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilité:Dentistes:N.H Dentaire:Fiches de traçabilité:2019:

Dans ces 3 cas je ne vois pas ce qui peut géner !

Ou alors il s'agit de cas ou le 2ieme bloc texte ne contient pas le mot "cabinet" mais qui dépende de ce cas de figure. Là c'est à toi de voir...

Dans tous les cas si tu peux vérifier que les chemins mentionnés dans ce fichier existent, ou s'il pointent vers un mauvais dossier. ça permettrai de mieux cibler le problème.

Je vais réfléchir à une autre solution pour concevoir un chemin valide en fonction du nom de fichier .


----------



## raphaelrs1 (15 Novembre 2019)

Pour DENTALPLAN je comprends car le vrai nom est DENTALPLAN - Saint-Lazare
Pour N.H Dentaire aussi car le dossier s'appelle N.H. Dentaire (il y a un point supplémentaire je vais le corriger)
Pour Gonesse c'est effectivement étrange...


----------



## zeltron54 (15 Novembre 2019)

Le point ne devrait pas influer..
Un problème est sur les noms qui contiennent " - "

Question :   les dossiers qui ont une hiérarchie supplémentaire: style:
"Cabinet du PSG⁩ ▸ ⁨Fiches de traçabilité⁩ ▸ ⁨NOM Prenom⁩ ▸ ⁨2019 ▸"

Ont bien le mot "Cabinet" dans le nom ? car sinon il prennent la hiérarchie:
"⁨NOM Prenom ▸ ⁨fiches de traçabilité⁩ ▸ 2019 ▸"

Auquel cas on ne peut pas trouver le dossier destination ?

Si le problème est là alors:
Il faudra découper le nom et vérifier si il contient 3 ou 4 blocs texte
Si 4 bloc texte --> "Cabinet du PSG⁩ ▸ ⁨Fiches de traçabilité⁩ ▸ ⁨NOM Prenom⁩ ▸ ⁨2019 ▸"
si 3 bloc texte --> "⁨NOM Prenom ▸ ⁨fiches de traçabilité⁩ ▸ 2019 ▸"


----------



## zeltron54 (15 Novembre 2019)

Après analyse des erreurs, la majorités sont dues au fait que les groupes ne contiennent pas le mot "Cabinet", pour ceux là la modification comptant le nombre de bloc texte au lieu du mot "Cabinet" devrait résoudre le problème.

D'autres ont dans leur noms le signe "&" ou  " - " ceux là je ne vois pas quoi faire

Il n' en reste qu'un pour lequel je ne trouve pas d'explication, c'est "je n'ai pas trouvé le dossier Macintosh HD:Users:raphael:Edera Dentaire Dropbox:Edera Dentaire:Fiches de traçabilité:Dentistes:Cabinet dentaire des TOULEUSES:Fiches de traçabilité:CHOUDHARY Shaila:2019:"
Pour ce dernier Il faut vérifier si le dossier existe.

J'ai donc modifié le script pour qu'il prenne en compte le nombre de bloc texte


```
set chemin to "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Édition:Fiches à trier:" as alias -- chemin du dossier à trier

set destination to "Macintosh HD:Users:maxime:Dentaire Dropbox:Dentaire:Fiches de traçabilité:Dentistes:" -- chemin de dossier destination


tell application "Finder"
    set les_fichiers to files of chemin --récupère tous les fichiers à trier
    repeat with chaque_fichier in les_fichiers --répète avec chaque fichier trouvé
        set le_fichier to name of chaque_fichier as string --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {" - "} -- defini le separateur
        
        set nbbloc to count (text item of le_fichier)
        
        set lepremier to text item 2 of le_fichier -- extrait le
        set ledeuxieme to text item 3 of le_fichier -- extrait le
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        
        
        if nbbloc = 4 then
            set ladestination to destination & lepremier & ":Fiches de traçabilité:" & ledeuxieme & ":2019:"
        else
            set ladestination to destination & lepremier & ":Fiches de traçabilité:2019:"
        end if
        
        set original to chemin & le_fichier as string -- fabrique le chemin du fichier en cours
        
        if ladestination exists then
            move original to ladestination -- déplace le fichier
        else
            set lelog to open for access ((path to desktop folder as text) & "Log erreur transfert.txt") as text with write permission
            write " je n'ai pas trouvé le dossier " & ladestination & (ASCII character 13) & return to lelog starting at eof
            close access lelog
        end if
        
        
        
    end repeat
    
    display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"} -- préviens fin du script
end tell
```


----------



## zeltron54 (15 Novembre 2019)

Après test le "&" ne gène pas, et le "-" pose problème seulement s'il est encadré par 2 espaces  " - ".


----------



## raphaelrs1 (25 Novembre 2019)

Salut !

Est-ce que tu as eu la possibilité de regarder un peu en profondeur le fichier Log erreur transfert et compris comment améliorer le script (bien qu'il me change déjà la vie...)

Merci !


----------



## zeltron54 (25 Novembre 2019)

Coucou,

Ben j'ai refait le script en #26 qui devrait résoudre les problèmes sauf si le nom contient " - ".
As-tu essayé ? et quel est le résultat ?


----------



## raphaelrs1 (25 Novembre 2019)

Ah je n'avais pas vu. Je regarde


----------

