IPB

Bienvenue invité ( Connexion | Inscription )

> Inverser noms de fichiers en applescript + critères, Inverser deux noms de fichiers s'ils ont une racine commune
Options
Speed Moock
posté 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 !
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Zeltron54
posté 31 Aug 2016, 15:17
Message #2


Adepte de Macbidouille
*

Groupe : Membres
Messages : 189
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour,

Pour éviter le plantage si pas de RG2 il suffit de vérifier s'il existe.
On obtient 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 name of ((TDossier & NomRG3) as alias) to "NomTemp" -- met RG3 avec nom temporaire
            set name of ((TDossier & nomRG2) as alias) to NomRG3 -- met RG2 avec l'indice RG_3 et le suffixe RG3
            set name of ((TDossier & "NomTemp") as alias) to nomRG2 -- met RG3 avec RG_2 et suffxe 2
            
        end if
        
    end repeat
end tell


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.5
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- 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
- - PBell   Effectivement Zeltron, on peut utiliser la functio...   31 Aug 2016, 17:16
- - 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


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 4th April 2026 - 20:44