# Transfert de photos selon une liste avec applescript



## T-45 (31 Mai 2018)

Bonjour,
Etant novice dans le domaine, je suis à la recherche d'un script pour gagner un peu de temps.
Je suis photographe de studio professionnel. En fin de shooting, mes clients reçoivent leurs photos en ligne et m'envoient la liste des photos a retoucher.
Je reçois donc une très grande liste de numéro de photo qu'il me faut retrouver à la main, une par une.

J'aimerais donc trouver un script capable, selon une liste de numéros de photos (.txt .tsv .csv) de transférer les bonnes photos d'un dossier A vers un dossier B. (IMG_0000)


J'ai trouvé ce script sur ce forum :

*tell* _application_ "Finder"

*set* cheminsource *to* *choose folder* with prompt "Sélectionnez le dossier contenant les fichiers à copier"

*set* chemincible *to* *choose folder* with prompt "Sélectionnez le dossier cible"

*set* laliste *to* *choose file* with prompt "Sélectionnez le fichier liste"

*my* inspecter(cheminsource, chemincible, laliste)

*end* *tell*


*on* inspecter(source, cible, liste1)



*set* dossiersource *to* source *as* _string_

*set* dossiercible *to* cible *as* _string_





*open for access* liste1

*read* liste1

*set* tout_le_fichier *to* *the* result

*close access* liste1

*set* AppleScript's text item delimiters *to* (*ASCII character* 13)

*set* toutes_les_lignes *to* (*every* _text item_ *of* tout_le_fichier) *as* _list_

*set* AppleScript's text item delimiters *to* ""

*set* tout_le_fichier *to* ""





*repeat* *with* une_ligne *in* toutes_les_lignes

*set* CheminImage *to* dossiersource & une_ligne

*tell* _application_ "Finder"



*duplicate* CheminImage to dossiercible



*end* *tell*

*end* *repeat*

*end* inspecter

*tell* _application_ "Finder"

    (*display dialog* ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})

*end* *tell*



Il ne fonctionne malheureusement pas dans mon cas (je ne sais pas trop pourquoi) mais je récupère une erreur (
"Erreur dans Finder : Le gestionnaire ne peut gérer des objets de cette classe." number -10010) avec la partie "*duplicate* CheminImage to dossiercible" en surbrillance.

Je suis sur Mac Mini OS Sierra

Auriez-vous une idée de comment arranger cela ? 

Je vous remercie d'avance pour votre aide !


----------



## zeltron54 (31 Mai 2018)

Bonjour,
L'erreur provient d'un nom de fichier pas reconnu.
Comment se présente la liste et dans quel format? (mettre un exemple svp)
Comment est le nom du fichier dans le dossier source (nom.extension)


----------



## T-45 (31 Mai 2018)

Merci pour votre réponse !

La liste se présente comme telle:
IMG_1906      
IMG_1901      
IMG_1898      
IMG_1891

Le nom des fichiers dans le dossier source:
IMG_1906.CR2 (fichier RAW)


----------



## zeltron54 (31 Mai 2018)

Alors 2 possibilités
1- la liste doit avoir l 'extension du fichier (IMG_1906.CR2)
2- Si tous les fichiers sont en .CR2, ajouter l'extension dans le script: ce qui donne

```
tell application "Finder"
   
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à copier"
   
    set chemincible to choose folder with prompt "Sélectionnez le dossier cible"
   
    set laliste to choose file with prompt "Sélectionnez le fichier liste"
   
    my inspecter(cheminsource, chemincible, laliste)
   
end tell


on inspecter(source, cible, liste1)
   
   
   
    set dossiersource to source as string
   
    set dossiercible to cible as string
   
   
   
   
   
    open for access liste1
   
    read liste1
   
    set tout_le_fichier to the result
   
    close access liste1
   
    set AppleScript's text item delimiters to (ASCII character 13)
   
    set toutes_les_lignes to (every text item of tout_le_fichier) as list
   
    set AppleScript's text item delimiters to ""
   
    set tout_le_fichier to ""
   
   
   
   
   
    repeat with une_ligne in toutes_les_lignes
    set CheminImage to dossiersource & une_ligne & ".cr2"
       
        set CheminImage to dossiersource & une_ligne
       
        tell application "Finder"
           
           
           
            duplicate CheminImage to dossiercible
           
           
           
        end tell
       
    end repeat
   
end inspecter

tell application "Finder"
   
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
   
end tell
```


----------



## T-45 (31 Mai 2018)

Super merci beaucoup ça fonctionne !! 

Malheureusement je ne récupère que la liste sans extensions, il ne me reste qu'à trouver le moyen d'ajouter .CR2 sur chaque ligne. Soit dans le fichier .tsv soit dans mon tableur. 
Mais ça ne devrait pas être bien compliqué !
Merci beaucoup !


----------



## r e m y (31 Mai 2018)

Le script modifié par zeltron ajoute lui-même l'extension.cr2
( set CheminImage to dossiersource & une_ligne & ".cr2" )

Inutile de modifier quoi que ce soit dans la liste.


----------



## T-45 (31 Mai 2018)

Ça ne fonctionne pas si je n'ajoute pas l'extension et ça ne marche finalement qu'une fois sur 10 avec l'extension, j'avoue ne pas trop savoir quoi faire. J'ai testé pas mal de chose, ça n'a marché que lorsqu'il n'y avait qu'un seul fichier dans la liste.


----------



## zeltron54 (31 Mai 2018)

Coucou  T-45
J'avais du m'absenter...
Effectivement je t'ai mis le script en vitesse , en ajoutant la nouvelle ligne mais en oubliant d'effacer l'ancienne.

Alors si ton fichier texte n'a pas les extensions et que tous tes fichiers sont en .cr2
Voilà le bon script

```
tell application "Finder"
  
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à copier"
    set chemincible to choose folder with prompt "Sélectionnez le dossier cible"
    set laliste to choose file with prompt "Sélectionnez le fichier liste"
    my inspecter(cheminsource, chemincible, laliste)
end tell

on inspecter(source, cible, liste1)
    set dossiersource to source as string
    set dossiercible to cible as string
    open for access liste1
    read liste1
    set tout_le_fichier to the result
    close access liste1
    set AppleScript's text item delimiters to (ASCII character 13)
    set toutes_les_lignes to (every text item of tout_le_fichier) as list
    set AppleScript's text item delimiters to ""
    set tout_le_fichier to ""

    repeat with une_ligne in toutes_les_lignes
        set CheminImage to dossiersource & une_ligne & ".cr2"      
        tell application "Finder"
            duplicate CheminImage to dossiercible
        end tell
    end repeat
end inspecter

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
```


----------



## zeltron54 (31 Mai 2018)

Je précise quand même que le script fait une copie du fichier original dans le dossier destination, sans toucher au dossier original
Si tu veux le déplacer, tu le dis je te modifierai le script.


----------



## T-45 (31 Mai 2018)

Malheureusement ça ne fonctionne toujours pas . Je vois dans le script qu'il y est marqué .jpg, c'est normal ?


----------



## zeltron54 (31 Mai 2018)

Non ,
J'avais corriger en cr2
revérifie .


----------



## T-45 (31 Mai 2018)

Pour juste le déplacer c'est très bien ! 
Par contre même après correction .cr2 ça ne fonctionne pas, j'ai toujours un message d'erreur 
Erreur dans Finder : Le gestionnaire ne peut gérer des objets de cette classe." number -10010

Je ne sais pas si c'est moi, ou si c'est le format fichier .tsv ou si c'est la disposition :

exemple:

IMG_1906
IMG_1901
IMG_1898
IMG_1891
IMG_1883
IMG_1871
IMG_1875
IMG_1869
IMG_1866
IMG_1847
IMG_1845
IMG_1843


----------



## zeltron54 (31 Mai 2018)

Le format du fichier liste doit être en texte (.txt)


----------



## r e m y (31 Mai 2018)

Et avec un retour chariot (Code ascii 13) pour séparer les noms de fichiers.


----------



## T-45 (31 Mai 2018)

Ça doit surement être ça le problème, mais comment fait-on ? Pour l'instant je faisais soit une simple avec l'outil texte soit une liste avec le tableur open office


----------



## zeltron54 (31 Mai 2018)

Je n'ai pas open office (je suis sur excel), mais ça doit être pareil.
tes noms de fichiers dans la colonne A. tu enregistres ou exportes  au format texte séparteur tabulation 
je pense que c'est l'appellation approchante.... !


----------



## T-45 (31 Mai 2018)

Après enregistrement au format texte séparateur tabulation grâce à googlesheet j'ai toujours le même message d'erreur


----------



## zeltron54 (31 Mai 2018)

Au départ, la liste des choix des clients tu la récupères où, comment, sous quel format et avec quoi ?
Car d'ici j'ai du mal à comprendre ce qui ne va pas.


----------



## T-45 (31 Mai 2018)

La liste client est récupérée depuis un prestataire galerie en ligne qui me fournis un lien qui copie automatiquement la liste des numéros de photos
Exemple juste après copie:

IMG_1906,IMG_1901,IMG_1898,IMG_1891,IMG_1883,IMG_1871,IMG_1875,IMG_1869

Je m'arrange derrière grâce à l'option transposer pour les aligner dans des cellules distinctes et en ligne verticale comme ci-dessous :

IMG_1906
IMG_1901
IMG_1898
IMG_1891
IMG_1883
IMG_1871
IMG_1875
IMG_1869


----------



## zeltron54 (31 Mai 2018)

Je pense à autre chose, ton dossier destination est bien vide ? pas que tu essais de copier 2 fois le même fichier. (le script ne fait pas de test si le fichier existe déjà).


----------



## zeltron54 (31 Mai 2018)

Cette transposition se fait avec open office ?
et tu obtiens la liste dans la colonne A (la première), et le reste de la feuille est bien vide ?


----------



## T-45 (31 Mai 2018)

Le dossier de destination est entièrement vide car créé pour le transfert et le reste de la feuille de calcul également vide. J'ai essayé avec open office et googlesheet sans succès. J'avoue ne pas comprendre non plus pourquoi ça ne marche pas ! Le premier script que tu m'as passé m'avais permis de transférer une seule photo, pas plus. Et depuis les derniers scripts plus rien.


----------



## byte_order (31 Mai 2018)

Et sinon, avec une commante shell via le Terminal :


```
cat fichier_liste.txt | xargs -p -I % cp dossier_source/%.cr2 dossier_destination
```

?

Retirer le -p pour ne plus devoir confirmer chaque commande de copie pour chaque fichier


----------



## zeltron54 (31 Mai 2018)

Par acquis de conscience je viens de télécharger le dernier script mis dans ce post, et je viens d'essayer chez moi aucun problème, les fichiers de la liste sont bien copier. Donc je ne vois qu'un problème de ton fichier liste.

Soit il n'est pas au bon format.
soit les fichiers qui sont des cette liste ne sont pas dans le dossier source.


----------



## T-45 (31 Mai 2018)

Oui c'est ce que je pense aussi, je viens de tester sur un macbook au cas ou. Même message d'erreur mais il ne me copie que la première photo. Ça ne serait pas a cause des fichiers .CR2 trop volumineux ? (ils font entre 35 et 45 mo chacun)
Comment procèdes-tu pour créer ta liste ?


----------



## zeltron54 (31 Mai 2018)

S'il ne copie que le premier fichier c'est que ta liste n'est pas au bon format.
Le fichier doit être: Nom_fichier  suivi d'un retour chariot (code ascii 13) puis le 2ieme Nom_fichier suivi d'un retour chariot      etc...

Le script lit le fichier texte, puis prend chaque terme qui est séparé par le (code ascii 13).

Perso je fait mon fichier texte à partir d'excel.  je l'enregistre au format Texte (séparateur: tabulation)

Il me faudrait un de tes fichier (soit liste originale) soit après transposition pour voir comment il est. et éventuellement trouver le moyen de le modifier.


----------



## T-45 (31 Mai 2018)

Le soucis c'est que avec open office impossible d'enregistrer en .txt il me le sort en .csv même en cochant tabulation séparateur de texte.
Ensuite avec googlesheet je peux exporter en valeur séparées par des tabulations mais celui-ci me sort un fichier .tsv 

Comment puis-je t'envoyer ma liste ?


----------



## r e m y (31 Mai 2018)

Le script prévoit le caractère ascii 13 comme séparateur (retour chariot)
set AppleScript's text item delimiters to (ASCII character 13)

Si les noms de fichiers sont séparés par des tabulations (voire par des virgules) il faut adapter le script en changeant de caractère ascii


----------



## zeltron54 (31 Mai 2018)

Alors on va faire un essai avec la liste que tu récupères: ton exemple:
IMG_1906,IMG_1901,IMG_1898,IMG_1891,IMG_1883,IMG_1871,IMG_1875,IMG_1869
enregistrée normalement en .txt

Dans le script tu remplaces     (ASCII character 13)   par   (ASCII character 44)

Le script prendra tout le noms séparés par des virgules.


----------



## T-45 (31 Mai 2018)

Décidément ça ne veut vraiment pas ! 
Peut importe ce que je fais, j’ai absolument toujours le même message d’erreur ! Je me demande si je n’ai pas un problème de format de fichier. Il me faudrait peut-être excel 

Quoi qu’il en soit j’ai un système D grace a mon logiciel de photo qui demande un peu de boulot mais ça reste faisable en attendant.


----------



## zeltron54 (31 Mai 2018)

tu as créé un fichier texte avec texEdit avec les noms de fichiers à la suite séparés par une virgule, c'esrt bien un fichier .txt  pas autre chose , en l'ouvrant tu vois bien la liste de tes fichiers ?


----------



## T-45 (31 Mai 2018)

Oui, exactement.


----------



## r e m y (31 Mai 2018)

Pour vérifier ce que le script récupère comme nom de fichiers, zeltron pourrait ajouter une ligne affichant un message avec le nom de fichier (juste avant la ligne qui duplique le fichier dans le dossier de destination). 
On verrait si il y a un pb a ce niveau là.


----------



## zeltron54 (31 Mai 2018)

La suggestion de remy . Ceci affiche une petite boite de dialogue qui te donne le chemin du prochain fichier qui va être traité.   Vérifie bien si c'est le bon chemin !

tu ajoutes la ligne :     display dialog cheminimage
là:
repeat with une_ligne in toutes_les_lignes
       set CheminImage to dossiersource & une_ligne & ".cr2"
       tell application "Finder"
display dialog cheminimage
           duplicate CheminImage to dossiercible
       end tell
   end repeat


----------



## daffyb (31 Mai 2018)

Je confirme, j'avais fait le test avec un fichier text de textEdit
En caractère ascii 13 pas de détection, par contre, si je mets une virgule avec ascii 44 alors là ça fonctionne.


----------



## zeltron54 (31 Mai 2018)

Oui daffyb pour le code ascii 13 il faut partir d'un fichier texte issu d'un enregistrement avec excel en séparateur :tabulation
Mais là je ne comprend pas ce qui se passe chez T-45  d'après ces dires tout à l'air bon.
Il faudrait pouvoir analyser les fichiers et dossiers ! !


----------



## T-45 (31 Mai 2018)

Après ajout de display dialog cheminimage Le chemin affiché est bien le bon : PRO:Vidange Carte:NOM prénom du client:IMG_1906.cr2 
Mais seul 1 fichier est affiché, le premier


----------



## zeltron54 (31 Mai 2018)

Alors on va voir si c'est la copie qui se passe mal:

on va supprimer la ligne qui copie le fichier, on verra si la liste continue d'être scrutée.
met juste  2    --      devant duplicate ce qui donne :

-- duplicate CheminImage to dossiercible

et refais l'essai


----------



## T-45 (31 Mai 2018)

Alors cette fois-ci j'ai eu la liste de toutes les photos une a une, avec le bon chemin. Je n'ai pas eu d'erreur, j'ai eu le message final. Mais rien n'a été copié dans le dossier cible


----------



## zeltron54 (31 Mai 2018)

OK c'est normal on avait enlevé la ligne de copie
Donc on va vérifier si le chemin de copie est bon en modifiant le dialogue :
tu remplaces l'ancienne ligne de dialogue par celle-ci:

display dialog "copie de " & CheminImage & " vers " & dossiercible

La boite de dialogue te dira :" copie de    chemin du fichier      vers     chemin du dossier cible qui doit se terminer par   2 points ":"

vérifie bien le chemin    (rien ne sera donc copié)


----------



## T-45 (31 Mai 2018)

Tout est bon également


----------



## zeltron54 (31 Mai 2018)

le chemin cible est bien le chemin du dossier et qui se termine par :

Alors je comprend pas,  vérifie que le dossier est bien vide et refais un essai en supprimant les 2   --    devant duplicate .
ceci remet en service la copie.
Vérifie bien chaque chemin du dialogue avant de valider


----------



## T-45 (31 Mai 2018)

C'est vraiment au niveau de la copie qu'il y a un problème, car sans les 2 -- seul la première image est citée et l'erreur est affichée. Avec les 2 -- toutes les images sont citées et pas de message d'erreur.

En tout cas un énorme merci à tous pour votre investissement et votre réactivité !!


----------



## zeltron54 (31 Mai 2018)

peux-tu ,depuis le finder, faire un lire les informations sur le 1er fichier image et vérifier ce qu'il y a dans "Nom et extension" 
Ceci afin afin d'être sur que c'est le même  nom de fichier que dans la liste ainsi que le bon nom d'extension .


----------



## T-45 (31 Mai 2018)

Oui : IMG_1609.CR2


----------



## zeltron54 (31 Mai 2018)

Dans le script lorsque tu as mis ".cr2" dans la ligne set CheminImage to dossiersource & une_ligne & ".cr2" il n'y a pas d'espace qui se serait glissé en début ou en fin par hasard?


----------



## T-45 (31 Mai 2018)

Non pas d’espace


----------



## byte_order (31 Mai 2018)

personne n'a envie de tester avec ma commande shell par hasard?


----------



## zeltron54 (31 Mai 2018)

@ byte_order
Coucou,
J'ai testé, j'ai eu une erreur, et je n'ai pas insisté, d'autant que pour T-45 ce ne sera pas qu'une fois ....


----------



## zeltron54 (31 Mai 2018)

Alors là je ne sais pas ce qui peut empêcher la copie.
Mais on va réfléchir et on devrait trouver.

Je voudrais avoir si possible 2 copies d'écran, une avec le message d'erreur, une avec le dialogue des chemins.


----------



## zeltron54 (31 Mai 2018)

@ byte_order
Je continu de tester ta commande, mais je connaît très mal les commande shell.
Je voudrais savoir, dans ta commande shell, peut -on adapter pour que le fichier liste soit une suite de noms séparés par une virgule au lieu d'un saut de ligne.
Merci


----------



## T-45 (31 Mai 2018)

Tu souhaites la copie écran ou une copie texte suffira ? 

Voila la copie du dialogue des chemins (le nom de mon client est effacé par précautions):  copie de PRO:Vidange Carte:NOM Thierry:IMG_1906.cr2 vers Macintosh HD:Users:theovalenducesktopESTINATION:

Voila le message d'erreur en image


----------



## r e m y (31 Mai 2018)

Les chemins d'accès du fichier et du dossier de destination ne me semblent pas cohérent. 

La destination a un chemin complet 
Macintosh HD:Users: ...

alors que le fichier à copier est
PRO:Vidange Carte:..,

ne devrait-il pas commencer aussi par
Macintosh HD:Users:... ?


----------



## zeltron54 (31 Mai 2018)

@remy 
Je pense qu'il sélectionne un dossier sur une carte SD ou une clé usb! qui doit donner un chemin de ce style.
On va voir sa réponse.

Sinon moi je ne vois pas d'autre anomalies flagrantes.
Dur, dur le travail à distance...


----------



## T-45 (31 Mai 2018)

C’est parce que l’ensemble des shootings est stocké sur un Cloud perso branché directement au mac.

J’ai également testé en prenant les photos depuis le bureau et même résultat !

Au pire ne vous inquietez pas je vais faire avec mon systeme D ! Vous m’avez déja super bien aidé et je ne vois plus trop quoi faire  je ne m’attendais pas à créer un sujet de 3 pages !

Un immense merci !!


----------



## zeltron54 (31 Mai 2018)

Alors la nuit porte conseil
je reprendrai demain


----------



## baron (1 Juin 2018)

zeltron54 a dit:


> @remy
> Je pense qu'il sélectionne un dossier sur une carte SD ou une clé usb! qui doit donner un chemin de ce style.
> On va voir sa réponse.





T-45 a dit:


> C’est parce que l’ensemble des shootings est stocké sur un Cloud perso branché directement au mac.
> 
> J’ai également testé en prenant les photos depuis le bureau et même résultat !


Je m'étais dit que ça pourrait être dû à un système de fichiers inhabituel, puis ta dernière phrase m'a fat douter… mais en fait, ça pourrait quand même être ça : le bureau en question est celui de ton volume Cloud, donc il partage son FileSystem.

Ça vaudrait peut-être la peine de tester en transférant quelques-unes de tes photos dans un dossier sur Macintosh HD ? 
(J'imagine que tu t'es assuré qu'une copie manuelle directement via le Finder fonctionnait bien ?… Autrement, juste tester aussi cette commande de copie via AppleScript ?)


----------



## r e m y (1 Juin 2018)

Si la commande duplicate d'Applescript est allergique au type de fichiers, peut-être essayer d'utiliser la commande UNIX cp pour faire la copie avec un
do shell script  "cp " & CheminImage & dossiercible

En remplacement de la ligne 
duplicate CheminImage to dossiercible


----------



## zeltron54 (1 Juin 2018)

Une dernière vérification: Fait un copier, coller de la liste contenue dans ton fichier liste.
Le correcteur automatique pourrait avoir mis un espace après chaque virgule, ce qui expliquerait que le premier soit bon et pas les suivant ?

Sinon il faudra reprendre depuis le début, en créant des dossiers et fichiers nouveaux sur le bureau pour test !


----------



## r e m y (1 Juin 2018)

Google m'indique que la bonne syntaxe de la commande duplicate serait

duplicate alias CheminImage to folder dossiercible


----------



## zeltron54 (1 Juin 2018)

@remy


> duplicate CheminImage to folder dossiercible



C'est exactement la commande du script 

Je suis persuadé que c'est la non reconnaissance du nom du fichier entre la liste et le fichier dans le dossier source !


----------



## r e m y (1 Juin 2018)

zeltron54 a dit:


> @remy
> 
> 
> C'est exactement la commande du script
> ...



duplicate alias CheminImage to folder dossiercible

Dans le script il manque le mot alias et le mot folder
Si j'en crois Google, alias est nécessaire pour spécifier qu'il s'agit d'un fichier (et pas d'une chaîne de caractères) et folder est nécessaire pour spécifier ce qu'est la destination.


----------



## r e m y (1 Juin 2018)

Sinon, utiliser le do shell script de mon message #58, mais dans ce cas il faut modifier CheminImage et dossiercible pour remplacer les : par des / dans les chemins d'accès


----------



## zeltron54 (1 Juin 2018)

Non, non, cela signifie qui faut que le cheminimage doit être au format alias (pas string ou autre) et folder signifie que ce soit un chemin vers un dossier...
Mais que tu les ajoutes ou pas ne devrait rien changer.


----------



## zeltron54 (1 Juin 2018)

@remy 
J'ai fais plein d'essai chez moi avec CP, avec le script shell de bytes-order, en remplaçant duplicate par move (pour déplacer) et même avec open pour ouvrir le fichier.
Tout fonctionne si le chemin et le nom du fichier est bon, par contre le moindre espace ou autre caractères qui s'insère donne bien ce message d'erreur.


----------



## zeltron54 (1 Juin 2018)

@T-45 
je viens de modifier le script pour faire un test.
Ce script ce sert de ton fichier liste avec des virgules.
A la place de dupliquer le fichiers il met une boite de dialogue  t'indiquant si il a trouvé ou pas le fichier de la liste dans le dossier source.
Peux-tu faire un essai et voir les fichiers qu'il trouve et ceux qu'il ne trouve pas.
Lorsqu'il ne trouve pas, regarde bien le chemin!  éventuellement fait une copie d'écran de la boite de dialogue.


```
tell application "Finder"
   
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à copier"
    set chemincible to choose folder with prompt "Sélectionnez le dossier cible"
    set laliste to choose file with prompt "Sélectionnez le fichier liste"
    my inspecter(cheminsource, chemincible, laliste)
end tell

on inspecter(source, cible, liste1)
    set dossiersource to source as string
    set dossiercible to cible as string
    open for access liste1
    read liste1
    set tout_le_fichier to the result
    close access liste1
    set AppleScript's text item delimiters to (ASCII character 44)
    set toutes_les_lignes to (every text item of tout_le_fichier) as list
    set AppleScript's text item delimiters to ""
    set tout_le_fichier to ""
   
    repeat with une_ligne in toutes_les_lignes
        set CheminImage to dossiersource & une_ligne & ".cr2"
        tell application "Finder"
           
            if exists CheminImage then
                display dialog "j'ai trouvé le fichier " & CheminImage
            else
                display dialog "PAS trouvé le fichier " & CheminImage
            end if
           
        end tell
    end repeat
end inspecter

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
```


----------



## T-45 (1 Juin 2018)

Bonjour à tous ! 
Désolé pour le retard !
Ca y est ça fonctionne !! J'ai transféré tous les dossiers à la base de Macintosh HD. J'imagine que le problème était la différence de source ?


----------



## zeltron54 (1 Juin 2018)

Ok  content pour toi
Si problème ou adaptation n(hésite pas à demander

Bonne journée


----------



## T-45 (1 Juin 2018)

Super ! Un énorme merci à vous tous en tout cas !!


----------



## zeltron54 (1 Juin 2018)

@byte_order 

Je tiens à te dire que j'ai enfin réussi à intégrer ta commande dans un applescript.
Avec ta version qui fonctionne sur un fichier liste avec 1 nom de fichier par ligne.
Une version à laquelle j'ai ajouté  (tr ',' '\n') pour remplacer les virgules par un retour chariot avant xargs   et tout fonctionne.

Merci de ta participation


----------



## FlorentCh (10 Juillet 2018)

Salut, 
J'ai essayé d'utiliser le script mais j'ai la même erreur que T-45, impossible. J'ai essayé toutes les solutions indiquées mais rien y fait. Voici ce que me dit la boite de dialogue (bizarre comme nom de fichier) : 
PAS trouvé le fichier SSD 500:Users:florent.chardonnal:Movies:CLIP_SD2:{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0

\f0\fs24 \cf0 C0211\
C0213\
C0214\
C0215\
C0216\
C0219\
C0221\
C0222\
C0224\
C0226\
C0227\
C0228\
C0229\
C0230\
C0242\
C0243\
C0246\
C0250\
C0251\
C0254\
C0261\
C0262\
C0263\
C0264\
C0266\
C0269\
C0272\
C0281\
C0282\
C0283\
C0284\
C0285\
C0286\
C0289\
C0290\
C0291\


----------



## FlorentCh (10 Juillet 2018)

FlorentCh a dit:


> Salut,
> J'ai essayé d'utiliser le script mais j'ai la même erreur que T-45, impossible. J'ai essayé toutes les solutions indiquées mais rien y fait. Voici ce que me dit la boite de dialogue (bizarre comme nom de fichier) :
> PAS trouvé le fichier SSD 500:Users:florent.chardonnal:Movies:CLIP_SD2:{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
> {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
> ...




Ok, problème résolu. J'avais un soucis dans l'architecture de la liste


----------



## FlorentCh (10 Juillet 2018)

Juste une question, pour copier coller on utilise duplicate mais pour simplement déplacer ?


----------



## zeltron54 (10 Juillet 2018)

Bonjour  Florentch,

Tu as bien vu pour copier --> coller on utilise duplicate.
Pour déplacer on utilise move à la place de duplicate

dis-moi si cela fonctionne, sinon on regardera de plus prés !


----------



## Riskybe (8 Août 2022)

zeltron54 a dit:


> Alors 2 possibilités
> 1- la liste doit avoir l 'extension du fichier (IMG_1906.CR2)
> 2- Si tous les fichiers sont en .CR2, ajouter l'extension dans le script: ce qui donne
> 
> ...


Bonjour Zeltron54, j'ai essayé ce script avec des dossiers se trouvant sur mon macbookair et il fonctionne parfaitement! Par contre, lorsque j'essaye de le lancer sur 1 dossier source (très volumineux) & cible se trouvant sur mon réseau de travail (qui tourne sous windows) l'application tourne en rond et ne fait pas le travail.  Qu'est ce qui pourrait bloquer? 
Merci d'avance de ton aide


----------



## zeltron54 (8 Août 2022)

Bonjour,

Souvent, lorsque l'on travaille sur le réseau, la vitesse de lecture et de transfert est trop longue , le script passe au fichier suivant avant que le premier ne soit traiter.

Pour résoudre ce problème il faut insérer une temporisation dans le script, ce que allonge beaucoup trop le temps de traitement...
Ou bien simplement déplacer les dossiers et fichiers sur le disque dur ce qui est long mais moins que la tempo...


----------



## Riskybe (8 Août 2022)

zeltron54 a dit:


> Bonjour,
> 
> Souvent, lorsque l'on travaille sur le réseau, la vitesse de lecture et de transfert est trop longue , le script passe au fichier suivant avant que le premier ne soit traiter.
> 
> ...


merci pour la réponse rapide, je vais donc essayer en déplaçant les dossiers sur un disque dur externe.


----------



## Riskybe (8 Août 2022)

Je confirme, ça fonctionne à merveille!!!  Un tout grand merci pour le temps gagné


----------

