Bienvenue invité ( Connexion | Inscription )
30 Aug 2016, 13:36
Message
#1
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 42 Inscrit : 30 Aug 2016 Membre no 199 619 |
Bonjour,
J'ai beau avoir bénéficié d'une formation applescript il y a un an, j'ai du mal à m'y remettre et je sollicite votre aide sur ce sujet a priori simple : Je veux écrire un script qui scannera le contenu d'un dossier contenant des images et qui en inversera les noms quand une condition est remplie. Les images sont toutes nommées selon la structure suivante : T_12345_codecoul_RG_1_78999.jpg La racine "T_12345_codecoul_RG_" peut-être commune à plusieurs images du dossier. L'unicité du nom vient du reste de la chaine de caractère. RG_ me donne le numéro de l'image. par exemple RG_1 pour l'image n°1 d'un produit, RG_2 l'image n°2 etc.. ce que doit faire le script : quand il trouve une image n°2 et n°3 qui ont la même racine, il doit en permuter les noms intégralement. Naturellement le script ne parcours qu'une fois le dossier ! Exemple : Avant passage du script image A : T_12345_codecoul_RG_2_78999.jpg image B : T_12345_codecoul_RG_3_12121.jpg Après passage du script : image A : T_12345_codecoul_RG_3_12121.jpg image B : T_12345_codecoul_RG_2_78999.jpg Pouvez-vous m'aider ? merci beaucoup ! |
|
|
|
![]() |
31 Aug 2016, 17:16
Message
#2
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 269 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Effectivement Zeltron, on peut utiliser la function "exists" mais dans ce cas, le résultat de name of every file... est une liste et pas un nom, d'où une erreur de type lors de l'execution.
Pour éviter cette erreur, il faut changer l'extraction du suffixe2 en : "set SuffixeRG2 to text item 2 of (item 1 of nomRG2)" C'est à dire en prenant l'item 1 de la liste NomRG2. Malgré cette correction, ta suggestion simplifie le code : CODE set monDossier to choose folder "sélectionner le dossier à traiter" set TDossier to monDossier as string tell application "Finder" set ListeRG3 to name of every item of folder monDossier whose name contains "RG_3" set AppleScript's text item delimiters to "RG_" repeat with NomRG3 in ListeRG3 -- boucle traiter tout les RG_3 set Prefixe to text item 1 of NomRG3 -- X_12345678_123_ set SuffixeRG3 to text item 2 of NomRG3 -- 3_12345.jpg set SuffixeRG3 to text 2 thru -1 of SuffixeRG3 -- supprime le "3" devant set RG2 to Prefixe & "RG_2" -- même début de nom que le RG_3, mais avec RG2 if exists (every file of monDossier whose name contains RG2) then -- verifie si un fichier avec prefixe & RG_2 existe set nomRG2 to (name of every item of folder monDossier whose name contains RG2) set SuffixeRG2 to text item 2 of (item 1 of nomRG2) set SuffixeRG2 to text 2 thru -1 of SuffixeRG2 -- supprime le "2" devant set NomTemp to Prefixe & "Temp_" & SuffixeRG3 set name of ((TDossier & NomRG3) as alias) to NomTemp -- met RG3 avec nom temporaire set name of ((TDossier & nomRG2) as alias) to Prefixe & "RG_3" & SuffixeRG3 -- met RG2 avec l'indice RG_3 et le suffixe RG3 set name of ((TDossier & NomTemp) as alias) to Prefixe & "RG_2" & SuffixeRG2 -- met RG3 avec RG_2 et suffxe 2 end if end repeat end tell Merci ! -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
Speed Moock Inverser noms de fichiers en applescript + critères 30 Aug 2016, 13:36
ades pas compris
dans ton exemple, si "image A :... 30 Aug 2016, 13:58
yponomeute Salut,
la racine "T_12345_codecoul_RG_... 30 Aug 2016, 14:01
KOENIG Yvan Est-il possible de trouver plus de deux fichiers d... 30 Aug 2016, 14:32
Speed Moock Bonjour,
Merci pour vos premiers retour.
Quelque... 30 Aug 2016, 15:01
PBell Bonsoir,
Si j'ai bien compris ta demande, le ... 30 Aug 2016, 18:31
Speed Moock Bonjour,
Merci je vais teste de suite ! Par c... 31 Aug 2016, 07:47
Speed Moock RE !
Alors je viens de tester mais visiblemen... 31 Aug 2016, 08:12
chombier Y'a un problème. D'après ta copie d... 31 Aug 2016, 09:53
Speed Moock Bonjour,
En effet mon dossier n'est pas bon e... 31 Aug 2016, 10:31
chombier Je pense qu'il faut passer par un nom de fichi... 31 Aug 2016, 10:40
Speed Moock Merci Chombier, j'essaye right now 31 Aug 2016, 11:07
PBell Bonjour,
Effectivement, j'ai supposé que pour... 31 Aug 2016, 12:17
chombier Citation (PBell @ 31 Aug 2016, 13:17) Par... 31 Aug 2016, 12:20
Speed Moock Bonjour,
je viens de lire vos post et je pense qu... 31 Aug 2016, 12:34
PBell Nos posts se sont croisés.
Chombier tu avais rais... 31 Aug 2016, 12:45
Speed Moock Je viens de tester avec le bout de code proposé p... 31 Aug 2016, 12:49
chombier Citation (Speed Moock @ 31 Aug 2016, 13:4... 31 Aug 2016, 12:50
Speed Moock J'ai le message d'erreur suivant
J... 31 Aug 2016, 13:02
chombier C'est sans doute les parenthèses dans:
Codese... 31 Aug 2016, 13:07
PBell Je suis dubitatif sur ta dernière correction.
QU... 31 Aug 2016, 13:13
chombier Ok, je pense avoir compris.
Il y a une erreur -172... 31 Aug 2016, 13:34
PBell Effectivement, si pas de RG2 ça plante.
Il faut r... 31 Aug 2016, 13:45
Zeltron54 Bonjour,
Pour éviter le plantage si pas de RG2 i... 31 Aug 2016, 15:17
Zeltron54 Le test "exists" ne sert qu'a savoir... 31 Aug 2016, 17:29
chombier Je suis plus en faveur du try ... end try.
L'e... 31 Aug 2016, 20:52
PBell @Chombier,
Le côté négatif de faire une second... 31 Aug 2016, 21:10
chombier A tester. Je pense que parcourir une liste déjà ... 31 Aug 2016, 22:02
Speed Moock Bonsoir à tous !
Bon alors je n'ai pas e... 1 Sep 2016, 00:05
Speed Moock Bonsoir,
Bilan ça fonctionne !
Donc mainte... 1 Sep 2016, 20:33
chombier Citation (Speed Moock @ 1 Sep 2016, 21:33... 2 Sep 2016, 00:13
PBell Bonjour,
Dans le Service Automator, il faut commen... 2 Sep 2016, 06:26
Speed Moock Bonjour,
Parfait ! ça fonctionne.
Merci bea... 4 Sep 2016, 16:40![]() ![]() |
| Nous sommes le : 4th April 2026 - 20:43 |