# Aide pour script Applescript ou droplet un peu particulier



## PO_ (16 Juillet 2017)

Bonjour,

J'aurais besoin d'un coup de main parce que j'ai de (très) nombreuses opération répétitives à réaliser et je suis persuadé qu'un script pourrait faire tout cela, seulement voilà, je n'y connais rien de rien.

Je dispose de pas mal de fichiers .cbr, ou .cbz (Il s'agit de BD). Ils ont une icône générique. Les fichiers jpg, eux, de base ont comme icône, l'aperçu du fichier.

J'aimerais un truc qui extraie la couverture (c'est le premier fichier dans l'archive), et remplace l'icône générique par l'aperçu de ce .jpg correspondant. Si c'est pas possible directement sur le .cbr, ou le .cbz, à cause du compactage, je peux sans problème décompter l'archive pour obtenir le dossier correspondant contenant les fichiers .jpg, sur lequel appliquer le script. Il y aurait donc le .cbz ou .cbr et le dossier décompté correspondant pourtant le même nom.

Y aurait-il un as de l'applescript qui pourrait me concocter cet outil miracle ?


----------



## baron (17 Juillet 2017)

Je regarderais d'abord si Graphic Converter ne permettrait pas cela…?


----------



## PO_ (17 Juillet 2017)

Merci de la suggestion.

je viens de regarder, et apparemment, il ne reconnait pas le format d'archive et je n'ai rien vu dans les menus qui puissent avoir un rapport avec ce que je désire obtenir.


----------



## JacqR (18 Juillet 2017)

Bonjour,

Voici une solution (testé sur *macOS Sierra*) :

Les fichiers ".cbz" sont des fichiers ZIP.
Pour les  fichiers ".cbr" , il n'y a pas d'utilité standard sur OSX pour lire ou extraire un fichier de cette archive, ils sont compressés avec *RAR*.​
1-
Donc, il vous faut l'exécutable *unrar*, il suffit de télécharger l'application *UnRarX* dans cette page http://www.unrarx.com, de décompresser l'archive et de placer l'application dans un dossier où vous voulez.

Vous n'avez pas besoin de lancer l'application ou de l'utiliser, le script n'utilise que l'exécutable "*unrar*" dans l'application "*UnRarX*".​2-
Ouvre l'application "Éditeur de script".
Copier et coller le texte de ce script :​

```
use framework "AppKit"
use scripting additions

on open cesArchives
    tell application "Finder"
        set p to (application file id "com.peternoriega.unrarx") as string -- on obtient le chemin de l'application UnRarX
        set tempFolder to POSIX path of ((make new folder) as string) -- création d'un dossier temporaire (c'est pour extraire le premier JPEG dans l'archive)
    end tell
    set unrarPath to quoted form of ((POSIX path of p) & "/Contents/Resources/unrar") -- on obtient l'exécutable dans l'application "UnRarX"
  
    repeat with archive in cesArchives -- boucle sur les fichiers déposés sur l'application (ce script)
        set x to POSIX path of archive
        set firstJPG to ""
        try
            if x ends with ".cbr" then
                set firstJPG to do shell script unrarPath & " vb " & (quoted form of x) & " | grep -m 1 -i  '.jpg$'" -- on obtient le nom du premier fichier .JPG dans l'archive ".cbr"
            else if x ends with ".cbz" then
                set firstJPG to do shell script "unzip -Z -1 " & (quoted form of x) & " | grep -m 1 -i '.jpg$'" -- on obtient le nom du premier fichier .jpg dans l'archive ".cbz"
            end if
        end try
        if firstJPG is not "" then
            set tFile to ""
            if x ends with ".cbr" then
                do shell script "cd " & (quoted form of tempFolder) & "; " & unrarPath & " e " & (quoted form of x) & " " & quoted form of firstJPG -- on extrait le premier fichier dans l'archive et on le place dans le dossier temporaire
            else if x ends with ".cbz" then
                do shell script "cd " & (quoted form of tempFolder) & "; unzip -j " & (quoted form of x) & " " & quoted form of firstJPG -- on extrait le premier fichier dans l'archive et on le place dans le dossier temporaire
            else -- ce n'est pas un fichier ".cbr" ou ".cbz"
                set tFile to missing value
            end if
            if tFile is not missing value then
                tell application "System Events" to tell (first file of folder tempFolder whose name extension is "jpg") to if exists then set tFile to POSIX path -- on obtient le chemin du fichier dans le dossier temporaire
                if tFile is not "" then my setIcon(tFile, x)
            end if
        end if
    end repeat
    tell application "System Events" to delete folder tempFolder -- supprime le dossier temporaire
end open

on setIcon(f, f2)
    --do shell script "sips -i " & quoted form of f -- ajoute une icône au fichier image
    set shW to current application's NSWorkspace's sharedWorkspace()
    set theIcon to shW's iconForFile:f -- on obtient l'icône du fichier
    shW's setIcon:theIcon forFile:f2 options:(current application's NSExclude10_4ElementsIconCreationOption) -- ajoute une icône personnalisée à l'archive
    tell application "System Events" to delete file f --  supprime le fichier dans le dossier temporaire
end setIcon
```



Sélectionnez le menu "*Fichier*" --> "*Enregistrer*"

Dans la fenêtre d'enregistrement, sélectionnez "*Application*" comme format de fichier dans le popup bouton, les autres options doivent être décochées.​


3- Après l'enregistrement du script, quittez l'application "Éditeur de script", c'est tout.​



Pour traiter tes archives, il suffit de faire un _*glissé/déposé*_ des archives sur l'icône du droplet  (le script).


*Information:* même si le *Finder* affiche les aperçus des fichiers images, cela ne veut pas dire que les fichiers images ont des icônes personnalisées, ils peuvent avoir que des icônes génériques.

Si les archives affichent l'icône générique des fichiers JPEG après le traitement par le script:

J'ai prévu cela dans le script au cas où, il suffit de supprimer les deux premiers caractères dans la ligne qui commence par 





> --do shell script "sips -i " & quoted form of f -- ajoute une icône au fichier image


----------



## PO_ (18 Juillet 2017)

UN énorme merci. Je testerais cela demain, dès que j'aurais un moment, et je ne manquerais pas de faire un retour ici même.


----------



## PO_ (18 Juillet 2017)

Petit retour d'utilisation : 

C'EST MAGIQUE ! ! !

Un énorme merci ( bis ). 

Il y a certains fichiers qui se montrent récalcitrants, mais ceux là, je les traiterais à la mano. Pour le premier (et le seul pour le moment) que j'ai autopsié pour comprendre, la structure n'était pas standard, donc cela s'explique.

C'est vraiment sympa à toi d'avoir pris le temps de me mitonner cet utilitaire.


----------



## PO_ (18 Juillet 2017)

Ooups !! je dois tempérer mon enthousiasme. l'aperçu créé est de très très faible résolution. Il y aurait pas moyen d'améliorer ça ???

Je ne m'en étais pas rendu compte sur le coup, car j''étais en mode liste, sans visualisation de l'aperçu dans la partie droite de la fenêtre ...

snif ...

et j'ai remarqué que dans certains cas, le script ne prenait pas la première image, mais la dernière, ou même un autre image dans le lot . Pas pu comprendre pourquoi.

Lorsque je procède à la main, voila ce que je fais : je décompacte une copie du cbr, ou du cbz, obtenant le dossier dans lequel sont les jpg. Je fais un Commande-I sur la couverture. Je fais un Command-Ctrl-Shift-4 (au moyen d'un raccourci sur bouton de souris) sur l'aperçu apparaissant dans la fenêtre d'information. je fais ensuite un Commande-I sur le cbz ou le cbr correspondant. Puis je clique en haut à gauche sur la miniature de l'icône et Commande-V pou coller la copie de l'aperçu. J'obtiens ainsi un aperçu de haute qualité.


----------



## JacqR (19 Juillet 2017)

Bonjour,


Pour les images, la commande récupère la liste selon l’ordre des fichiers compressés, et il se peut que la liste ne soit pas toujours en ordre alphabétique (cela dépend de l'application ou de la ligne de commande qui compresse les fichiers, aussi de l'ordre personnalisé pour le dossier qui contient les fichiers).

Donc, j’ai ajouté un tri de la liste des noms au script.


Pour la résolution de l’icône, la commande "*sips -i*" donne effectivement une icône de faible résolution, je l’ai remplacé par une méthode Cocoa-Applescript.

Voici le script AppleScript modifié.

```
use framework "Foundation"
use framework "AppKit"
use scripting additions

on open cesArchives
    tell application "Finder"
        set p to (application file id "com.peternoriega.unrarx") as string -- on obtient le chemin de l'application UnRarX
        set tempFolder to POSIX path of ((make new folder) as string) -- création d'un dossier temporaire (c'est pour extraire le premier JPEG dans l'archive)
    end tell
    set unrarPath to quoted form of ((POSIX path of p) & "/Contents/Resources/unrar") -- on obtient l'exécutable dans l'application "UnRarX"
   
    repeat with archive in cesArchives -- boucle sur les fichiers déposés sur l'application (ce script)
        set x to POSIX path of archive
        set firstJPG to ""
        try
            if x ends with ".cbr" then
                set r to do shell script unrarPath & " vb " & (quoted form of x) -- on obtient la liste des noms dans l'archive ".cbr"
            else if x ends with ".cbz" then
                set r to do shell script "unzip -Z -1 " & (quoted form of x) -- on obtient la liste des noms  dans l'archive ".cbz"
            end if
            if r is not "" then set firstJPG to my trier(paragraphs of r) -- on tri les noms et on obtient le nom du premier fichier .JPG dans l'archive
        end try
        if firstJPG is not "" then
            set tFile to ""
            if x ends with ".cbr" then
                do shell script "cd " & (quoted form of tempFolder) & "; " & unrarPath & " e " & (quoted form of x) & " " & quoted form of firstJPG -- on extrait le premier fichier dans l'archive et on le place dans le dossier temporaire
            else if x ends with ".cbz" then
                do shell script "cd " & (quoted form of tempFolder) & "; unzip -j " & (quoted form of x) & " " & quoted form of firstJPG -- on extrait le premier fichier dans l'archive et on le place dans le dossier temporaire
            else -- ce n'est pas un fichier ".cbr" ou ".cbz"
                set tFile to missing value
            end if
            if tFile is not missing value then
                tell application "System Events" to tell (first file of folder tempFolder whose name extension is "jpg") to if exists then set tFile to POSIX path -- on obtient le chemin du fichier dans le dossier temporaire
                if tFile is not "" then my setIcon(tFile, x)
            end if
        end if
    end repeat
    tell application "System Events" to delete folder tempFolder -- supprime le dossier temporaire
end open

on setIcon(f, f2)
    set ca to current application
    set image to ca's NSImage's alloc()'s initWithContentsOfFile:f -- on récupère l'image JPG  (pleine grandeur)
    set w to image's |size|()'s width()
    set h to image's |size|()'s height()
    if h > w then
        set maxD to h
        set centerH to 0
        set centerW to (h - w) / 2
    else
        set maxD to w
        set centerW to 0
        set centerH to (w - h) / 2
    end if
    (*  Le problème avec 'setIcon:theIcon' est qu'il crée une icône carré, donc  si l'image originale est rectangulaire l'icône sera déformé
         La solution est de créer une nouvelle image carré avec un fond invisible et on applique l'image originale au centre du fond invisible, les dimensions de l'image originale  restera la même
    *)
   
    set centerBounds to ca's NSMakeRect(centerW, centerH, w, h)
    set theIcon to ca's NSImage's alloc()'s initWithSize:{maxD, maxD} -- création d'une nouvelle image vide (elle est redimensionné pour faire un carré)
    theIcon's lockFocus()
    image's drawInRect:centerBounds fromRect:(ca's NSZeroRect) operation:(ca's NSCompositeCopy) fraction:1.0 -- on applique l'image originale au centre de l'image vide
    theIcon's unlockFocus()
    ca's NSWorkspace's sharedWorkspace()'s setIcon:theIcon forFile:f2 options:0 -- on ajoute une icône personnalisée à l'archive
   
    tell application "System Events" to delete file f --  supprime le fichier dans le dossier temporaire
end setIcon

on trier(l) --  une méthode Cocoa-Applescript (Objective-C)
    set theList to current application's NSMutableArray's arrayWithArray:l
    set theDesc to current application's NSSortDescriptor's sortDescriptorWithKey:"self" ascending:true selector:"localizedStandardCompare:"
    theList's sortUsingDescriptors:{theDesc} -- on tri la liste
    ((theList's pathsMatchingExtensions:{"jpg", "JPG", "jpeg", "JPEG"})'s objectAtIndex:0) as string -- on obtient le premier JPG dans la liste
end trier
```


----------



## PO_ (19 Juillet 2017)

Vraiment, Merci beaucoup. Je teste et je te dis quoi ...


----------



## PO_ (19 Juillet 2017)

*Le dernier paragraphe après EDIT est important*

C'est presque bon .

Toutes les icônes de mauvaise qualité ont été avantageusement remplacées.

Pour les fichiers que j'ai traité, Je n'ai eu aucun problème sur les .cbr (rar) , en revanche pas mal de soucis sur des cbz (zip) ne donnant aucune icône du tout.

Après décompactage, il s'avère qu'ils ont une "structure" un peu bizarre quant à la dénomination des fichiers. Je me permets de te joindre 3 liens pour que tu voies ce qu'il en est. L'ensemble des 3 liens représente 480 Mo, j'en suis désolé).

J'aurais bien tenté le coup les compacter en .cbr (rar), mais je ne dispose pas d'outil me permettant ce cette compression.

J'ai fait l'essai de renommer les fichiers .jpg d'un dossier récalcitrant et ça a marché, donc au pire, j'ai toujours cette solution.

Je te renouvelle mes remerciements.


PS: voici les liens (je te les aurais bien envoyé en message privé, mais j'ai l'impression que le forum ne le permet pas

http://www72.zippyshare.com/v/Jh1ct9oh/file.html

http://www104.zippyshare.com/v/gbzfFfP4/file.html

http://www79.zippyshare.com/v/ZpP66CfG/file.html


*EDIT-------------------

Après essais, je me suis rendu compte qu'en renommant systématiquement les fichiers sous la forme image_01; image_02; ...  il n'avait plus aucun problème. Ce serait-peut-être plus simple pour toi, si tu viens bien continuer à m'aider d'inclure une routine de renommage systématique.

un autre point, je suis tombé sur un dossier où l'extension était .jpeg et non pas .jpg, et ça n'a pas marché, mais bon c'est anecdotique.*


----------



## PO_ (19 Juillet 2017)

près avoir traité des dizaines de dossiers, je me suis mis à avoir une erreur finder systématique sur ton script (Erreur de paramètres  -50). Impossible de rien traiter. J'ai galèré pendant plus de 2 heures et demie, cherchant même à réinstaller mon OS (mais pas possible de retélécharger une combo). Puis, d'un seul coup c'est retombé en marche. Je n'y comprends absolument rien. D'après toi qu'est ce qui peut provoquer une erreur -50. Ça m'ouvrait bien la fenêtre de l'éditeur de script, mais pas moyen de voir où ça coince. Rien trouvé dans la console non plus.

Le pire c'est que ça ne marche pas sur le Mac Pro qui est en 10.11.4, même erreur. Et lui, j'arrive pas à le faire tomber en marche

Je me suis fait 2 scripts automator pour accélérer le traitement des fichiers qui récalcitrent à cause de leur structure bizarroïde : l'un pou dézipper un cbz : il change l'extension puis dzippe. Ensuite, je balance le contenu de la fenêtre dans BetterFinderRename pour qu'il me renomme tout, une fois que c'est fait, second script qui décompresse en zip, et change l'extension en cbz. puis drag&drop sur ton script magique, et roule ma poule une belle icône. Je n'ai pas eu un seul raté avec cette méthode.

J'utilise Keka comme capteur décompacteur.


----------



## JacqR (19 Juillet 2017)

Bonjour,


1- 
Le problème avec certains fichiers ".*cbz*" est qu'ils sont compressés au format RAR, donc c'est le créateur de l'archive qui n'a pas mis la bonne extension.
J'ai réglé cela dans le nouveau script.​

2- 
L'autre problème est que l'archive contient des fichiers invisibles, ce sont des resources fork qui sont attachées au fichier Mac, ce problème survient quand les fichiers originaux sont créés sur un disque au format Mac et qu'ils sont transférés sur un disque au format Windows (les resources fork sont détachées du fichier et cela crée des fichiers inutiles) . 

Si l'utilisateur (sur Windows) ne nettoie pas le dossier de ces fichiers inutile, l'utilitaire qui compresse les fichiers inclura les fichiers invisibles dans l'archive.
Donc, dans le nouveau script, j'exclus dans la liste de noms, les noms qui contient "*__MACOSX/*"​

Pour l'erreur, je ne sais pas, mais  je ne crois pas que cela fonctionne correctement pour OS 10.11.x ou moins récent:
La méthode pour (10.11.x ou moins récent) serait  comme ceci :

Ouvrir l'application "Éditeur de script" et sélectionnez le menu "Fichier" --> "Nouveau à partir d'un modèle" --> "*Cocoa-AppleScript Applet*"

Copié/collé le script.
Ajouté quit dans le script juste avant la ligne qui commence par end open, comme ceci


> quit





> end open



Car cette application ne quittera pas automatiquement comme un droplet normal
On enregistre le script, c'est tout.​

Note : pour les scripts de type "*Cocoa-Applescript*", il est préférable de toujours compiler le script avant de l'enregistrer (il suffit de cliquer sur le bouton dont l'icône est un marteau), cela évite certaines erreurs.

J'ai activé mes messages personnels , si vous avez besoin de m'envoyer d'autres fichiers, vous pouvez le faire en privé.

Voici le nouveau script :

```
use framework "Foundation"
use framework "AppKit"
use scripting additions

on open cesArchives
    tell application "Finder"
        set p to (application file id "com.peternoriega.unrarx") as string -- on obtient le chemin de l'application UnRarX
        set tempFolder to POSIX path of ((make new folder) as string) -- création d'un dossier temporaire (c'est pour extraire le premier JPEG dans l'archive)
    end tell
    set unrarPath to quoted form of ((POSIX path of p) & "/Contents/Resources/unrar") -- on obtient l'exécutable dans l'application "UnRarX"
   
    repeat with archive in cesArchives -- boucle sur les fichiers déposés sur l'application (ce script)
        set x to POSIX path of archive
        set firstJPG to ""
        set fauxCBZ to false
        try
            if x ends with ".cbr" then
                set r to do shell script unrarPath & " vb " & (quoted form of x) & " | grep -v '__MACOSX/'" -- on obtient la liste des noms dans l'archive ".cbr"
            else if x ends with ".cbz" then
                try
                    set r to do shell script "unzip -Z -1 " & (quoted form of x) & " | grep -v '__MACOSX/'" -- on obtient la liste des noms  dans l'archive ".cbz"
                on error -- ce n'est pas une archive zip, c'est un ".cbz" compressé au format rar
                    set r to do shell script unrarPath & " vb " & (quoted form of x) & " | grep -v '__MACOSX/'" -- on obtient la liste des noms dans l'archive ".cbz"
                    set fauxCBZ to true
                end try
            end if
            if r is not "" then set firstJPG to my trier(paragraphs of r) -- on tri les noms et on obtient le nom du premier fichier .JPG dans l'archive
        end try
        if firstJPG is not "" then
            set tFile to ""
            if x ends with ".cbr" or fauxCBZ then
                do shell script "cd " & (quoted form of tempFolder) & "; " & unrarPath & " e " & (quoted form of x) & " " & quoted form of firstJPG -- on extrait le premier fichier dans l'archive et on le place dans le dossier temporaire
            else if x ends with ".cbz" then
                do shell script "cd " & (quoted form of tempFolder) & "; unzip -j " & (quoted form of x) & " " & quoted form of firstJPG -- on extrait le premier fichier dans l'archive et on le place dans le dossier temporaire
            else -- ce n'est pas un fichier ".cbr" ou ".cbz"
                set tFile to missing value
            end if
            if tFile is not missing value then
                tell application "System Events" to tell (first file of folder tempFolder whose name extension is "jpg") to if exists then set tFile to POSIX path -- on obtient le chemin du fichier dans le dossier temporaire
                if tFile is not "" then my setIcon(tFile, x)
            end if
        end if
    end repeat
    tell application "System Events" to delete folder tempFolder -- supprime le dossier temporaire
end open

on setIcon(f, f2)
    set ca to current application
    set image to ca's NSImage's alloc()'s initWithContentsOfFile:f -- on récupère l'image JPG  (pleine grandeur)
    set w to image's |size|()'s width()
    set h to image's |size|()'s height()
    if h > w then
        set maxD to h
        set centerH to 0
        set centerW to (h - w) / 2
    else
        set maxD to w
        set centerW to 0
        set centerH to (w - h) / 2
    end if
    (*  Le problème avec 'setIcon:theIcon' est qu'il crée une icône carré, donc  si l'image originale est rectangulaire l'icône sera déformé
         La solution est de créer une nouvelle image carré avec un fond invisible et on applique l'image originale au centre du fond invisible, les dimensions de l'image originale  restera la même
    *)
   
    set centerBounds to ca's NSMakeRect(centerW, centerH, w, h)
    set theIcon to ca's NSImage's alloc()'s initWithSize:{maxD, maxD} -- création d'une nouvelle image vide (elle est redimensionné pour faire un carré)
    theIcon's lockFocus()
    image's drawInRect:centerBounds fromRect:(ca's NSZeroRect) operation:(ca's NSCompositeCopy) fraction:1.0 -- on applique l'image originale au centre de l'image vide
    theIcon's unlockFocus()
    ca's NSWorkspace's sharedWorkspace()'s setIcon:theIcon forFile:f2 options:0 -- on ajoute une icône personnalisée à l'archive
   
    tell application "System Events" to delete file f --  supprime le fichier dans le dossier temporaire
end setIcon

on trier(l) --  une méthode Cocoa-Applescript (Objective-C)
    set theList to current application's NSMutableArray's arrayWithArray:l
    set theDesc to current application's NSSortDescriptor's sortDescriptorWithKey:"self" ascending:true selector:"localizedStandardCompare:"
    theList's sortUsingDescriptors:{theDesc} -- on tri la liste
    ((theList's pathsMatchingExtensions:{"jpg", "JPG", "jpeg", "JPEG"})'s objectAtIndex:0) as string -- on obtient le premier JPG dans la liste
end trier
```


----------



## JacqR (19 Juillet 2017)

Re Bonjour,

OK pour l'erreur *number -50,* j'ai trouvé, vous obtiendrez cette erreur si le *Finder* ne trouve pas l'application "UnrarX", donc  il faut télécharger l'application "UnrarX" pour chaque OS si vous voulez utiliser ce script, et il faut que  l'application "UnrarX" soit sur le volume de démarrage.


----------



## PO_ (19 Juillet 2017)

Je l'avais téléchargé selon vos instructions, et tout marchait. Je ne l'ai pas supprimée alors pourquoi cela a-t'il cessé de marcher, et surtout pourquoi est-ce retombé en marche ... les mystères insondables de l'informatiques. j'avais bien entendu essayé moulte fois de redémarrer et même de zapper la PRAM ... mais sans résultat ...


----------



## PO_ (20 Juillet 2017)

pour le moment, tout à l'air de fonctionner comme sur des roulettes. Juste 3 exceptions sur 500 fichiers traités. Je vous les ferais parvenir ultérieurement. Ah oui, si au lien de .jpg, les fichiers sont .jpeg, ça ne fonctionne pas.


----------



## PO_ (20 Juillet 2017)

Je viens de traiter plus de 1500 fichiers (en plusieurs fois lol ) , et d'un coup, l'application s'est bloquée. J'ai été obligé de la force quit. Depuis, plus moyen de la faire fonctionner, à nouveau la #@&*% ! d'erreur -50 ... je ne sais pas quoi faire, puisque je ne sais pas pourquoi elle s'est remise à fonctionner dans l'après midi ...


----------



## PO_ (20 Juillet 2017)

J'ai réussi à me débarrasser encore une fois de l'erreur -50. J'était persuadé d'avoir téléchargé unRarX. Après avoir fait une recherche sur le disque dur, je n'ai trouvé qu'un dossier nommé "rar" contenant des fichiers txt et 2 fichiers nommés rar et unrar portant l'icône d'un "terminal". J'ai donc téléchargé unRarX suivant le lien donné dans votre premier message et tout est rentré dans l'ordre.

Par contre j'aurais encore un petit service à vous demander. Les 2 scripts automator que j'ai fait me permettent, l'un de dézipper automatiquement un cbz, ou un cbz (uniquement pour les fichiers récalcitrants, qui se font de plus en plus rares ou pour les packs contenant plusieurs BD et que je souhaite individualiser), et l'autre script me permet de recompacter le dossier (après modifications) et de lui affecter l'extension.cbz. Ces scripts fonctionnent par Drag & Drop, MAIS, et c'est là l'objet de ma demande, on ne peut glisser dessus qu'un seul fichier à la fois. Vous serait-il possible de me les inclure dans un script qui me permettent de glisser-déplacer un ensemble de fichiers (pour le premier) ou de dossiers (pour le second) ?
L'ultime version de votre scripte magique fonctionne à la perfection. Les rares exceptions ne sont dues qu'à des structures incorrectes et donc ne pouvant pas être prise en compte par le script.

voici le lien pour les 2 scripts : 

http://www94.zippyshare.com/v/VDDLnjRE/file.html


----------



## JacqR (20 Juillet 2017)

Bonjour,

C'est fait.

Pour le processus qui compresse les dossiers:
Ce n'est pas possible avec les actions normales d'Automator, car il compressera tous les dossiers dans une seule archive.
Donc, j'utilise un script shell qui compressera chaque dossier dans le dossier parent.​
Si vous voulez déplacer les nouvelles archives ".*cbz*" dans un dossier spécifique, il suffit d'ajouter l'action "Déplacer les éléments du Finder" après l'action "Exécuter un script Shell"​


Voici le lien pour télécharger les processus modifiés : https://1drv.ms/u/s!AuQlRHHsVyZmgQqaG6GNSSPbcUYI


----------



## PO_ (20 Juillet 2017)

y a un truc qui m'interpelle dans le script modifié dézippage cbz que vous m'avez fourni. Je l'ai examiné avec automator, et il semble identique au mien. Seulement le mien, si je l'utilise sur plusieurs fichiers, il donne une erreur finder, alors que le votre me décompresse tous les fichiers . j'aimerais comprendre


----------



## JacqR (20 Juillet 2017)

La différence  est dans l'action "Renommer les ....", j'utilise "*Remplacer du texte*" au lieu de "*Nommer un seul élément*"


----------



## PO_ (20 Juillet 2017)

Ça m'avait échappé. Bizarre que ça influe autant sur le fonctionnement, parce qu'au final, le résultat est le même.

Il m'arrive un truc bizarre. J'ai l'impression que c'est depuis que j'ai re (?) téléchargé UnrarX. Tous les aperçus de mes pdf ont disparu, mais uniquement pour l'affichage en mode colonne. Pour le mode icône, et pour l'affichage en liste (grande ou petite icône), ils sont bien présents. Je ne vois pas du tout d'où ça peut provenir.


----------



## PO_ (21 Juillet 2017)

Et ils sont revenus sans que je n'y fasse rien du tout. Y a pas eu une éruption solaire, des fois ?


----------



## JacqR (21 Juillet 2017)

Si vous voulez supprimer l'application "*UnrarX*" et pour que le script fonctionne sans problème, c'est possible:

Faire un clic-droit sur l'application "UnrarX" ,sélectionnez le menu "Afficher le contenu du paquet".

Aller dans le dossier "Contents" --> "Resources", déplacer le fichier "unrar" dans un de vos dossiers sur le disque de démarrage.
Supprimer l'application "UnrarX".


Dans le script :
Supprimer cette ligne​


> set p to (application file id "com.peternoriega.unrarx") as string -- on obtient le chemin de l'application UnRarX



Remplacer cette ligne​


> set unrarPath to quoted form of ((POSIX path of p) & "/Contents/Resources/unrar") -- on obtient l'exécutable dans l'application "UnRarX"



par ceci​


> set unrarPath to quoted form of "" -- le chemin de l'exécutable  "unrar"


maintenant il reste à remplir les guillemets --> *""* :
dans le *Finder*, sélectionnez le fichier "*unrar*", et glisser/déposer le fichier entre les guillemets dans le script.​
Cela donnera par exemple (pour moi ) :


> set unrarPath to quoted form of "/Users/jacques/Applications/unrar" -- le chemin de l'exécutable  "unrar"




*Important*, ne pas écrire le chemin à la main, car le script utilse les noms de dossier en anglais pas les noms localisés, exemple:
C'est *Users* au lieu de *Utilisateurs
Desktop* au lieu de *Bureau
Downloads* au lieu de *Téléchargements*, etc..​


----------



## PO_ (22 Juillet 2017)

Je vous remercie, mais en fait, il n'y a pas de raisons que je supprime unrarX, puisque, comme je l'ai indiqué, tous les aperçus de mes pdf sont revenus aussi brusquement qu'ils avaient disparus.

Par contre, il se peut que je vous fasse parvenir certains cbz qui refusent de passer à la moulinette en générant des erreurs pour moi incompréhensibles. Je les ai traités à la main, mais j'aimerais comprendre la cause de l'erreur, car, j'ai renommé tous les .jpg de la même manière que pour mes premiers essais (avant que vous ne rendiez le scripts mega efficace.


----------

