IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

AppleScript pour modifier un suffixe


Sujet :

AppleScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2022
    Messages : 3
    Par défaut AppleScript pour modifier un suffixe
    Bonjour,
    Je ne sais pas comment coder l'applescript qui va me permettre de modifier mon suffixe de sortie d'appareil photo des fichiers ".JPG" en ".jpg" (minuscules).
    Quelqu'un peut-il m'aider ?
    MERCI BEAUCOUP +++

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Gourmand69,
    Cela fait bien longtemps que personne n'avait posé ce genre de question sur ce forum ! Bienvenu.

    Voici un script qui réponds à ton souhait de changer les .JPG en .jpg, bien que je reste dubitatif sur l'utilité d'un tel changement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    -- change l'extension .JPG en .jpg pour les fichiers sélectionnés
    property ext1 : "JPG"
    property ext2 : "jpg"
     
    tell application "Finder"
        set Liste to selection
        if (count of Liste) = 0 then return
     
        repeat with F in Liste
            if name extension of F is ext1 then set name extension of F to ext2
        end repeat
     
    end tell
    Tu copies/colles ce script dans l'éditeur de script.
    Ce script traite les fichiers sélectionnés dans le Finder et seulement ceux qui comportent l'extension JPG.

    Donc tu sélectionnes des fichiers et tu exécutes ce programme.
    Il est aussi possible d'insérer ce script dans un service Automator: ce service sera disponible par un click droit, une fois la sélection des fichiers faite.

    A toi de voir le plus pratique dans ton cas.

    Cordialement

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2022
    Messages : 3
    Par défaut
    Bonjour PBell,
    Merci beaucoup de m'aider c'est vraiment sympa.
    J'ai intégré ce code à AppleScript comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    on run {input, parameters}
     
    property ext1 : "JPG"
    property ext2 : "jpg"
     
    tell application "Finder"
        set Liste to selection
        if (count of Liste) = 0 then return
     
        repeat with F in Liste
            if name extension of F is ext1 then set name extension of F to ext2
        end repeat
     
    end tell
     
    	return input
    end run
    mais il me retourne une erreur de syntaxe :
    "end" prévu" mais "property" trouvé
    Je souhaite que cette conversion .JPG en .jpg soit faite dans un dossier bien spécifique uniquement (sortie d'appareil photo) et non sur l'ensemble du Finder.
    J'ai donc remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tell application "Finder"
    par
    mais je ne sais pas du tout si c'est bon, du fait de l'erreur de syntaxe ci-dessus qui empêche l'exécution du script.

    Je suis trop novice là, c'est super sympa de m'aider et peut-être que ça pourra profiter à d'autres...

    Encore merci ! 😀👍

  4. #4
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir,

    Effectivement, les "properties" doivent être définies hors du handler "on run". En clair, tu dois mettre ton "On Run..." entre les lignes "property..." et "tell application "Finder..."
    Si cela va résoudre ton problème de syntaxe/compilation, mais cela ne va rien donner de plus.

    En fait, j'ai écrit le script en me basant sur le fait que les fichiers à modifier pouvaient être n'importe où, du moment qu'ils sont sélectionnés avant de lancer le script.
    Par exemple, tu ouvres ton dossier "SNAP", tu sélectionnes tous les fichiers qu'il contient (touches Cmd A) et tu lances le script qui ne va modifier que les fichiers sélectionnés qui ont une extension "JPG".
    Les fichiers avec d'autres extensions ne seront pas changés,...en particulier ceux étant déjà en "jpg" !

    Pour que tu comprennes bien, je vais détailler les lignes du script:

    La ligne tell application "Finder" signifie simplement qu'à partir de là, et jusqu'au end tell, le script utilise des fonctions du Finder:
    - prendre la liste des fichiers actuellement sélectionnés par l'utilisateur
    - Si rien n'est sélectionné, le "return" termine le programme
    - dans la boucle repeat/end repeat, le script utilise la fonction du "Finder" pour lire l'extension de chaque fichier et si elle est égale à "JPG" le script utilise la fonction du Finder pour changer cette extension en "jpg".

    Comme tu le vois, l'appel au Finder est juste là pour utiliser les fonctions prédéfinies de manipulation de fichier du Finder. Cela n'a rien à voir avec le dossier où sont stockés les fichiers à traiter.
    Pour les experts, je précise que ces instructions du Finder, si elles sont bien pratiques, peuvent s'exécuter lentement sur des grands nombres de fichiers. En cas de traitement de plusieurs centaines de fichier en une fois, mieux vaut passer par des commande shell. (ou lancer plusieurs fois le script sur de petites sélections !)

    J'espère être clair.

    Quant à l'utilisation de la fonction toujours dans le même dossier, on pourrait faire appel à une action de dossier (j'ai écrit il y a un certain temps un article complet à ce sujet dans ce même forum. https://mac.developpez.com/cours/act...erapplescript/)
    Avec cette méthode, dès qu'un fichier est ajouté au dossier, un script est lancé avec pour paramètre le fichier ajouté.
    Cependant, cette méthode appliquée sur des ajouts en masse "oublie" parfois un fichier (cf explication dans l'article). Si tes images proviennent d'un téléchargement de ton appareil photo, cela risque d'être le cas.
    En outre, cette méthode s'applique uniquement lors de l'ajout du fichier dans le dossier, mais pas sur les fichier déjà présents dans ce dossier.

    C'est pourquoi je te conseille plutôt de garder mon script et de le mettre en service dans Automator pour l'avoir en click droit.
    Par exemple tu ouvres un dossier (SNAP ou autre !), tu sélectionnes tous ou partie des fichiers et click droit pour lancer le service !

    Cordialement

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2022
    Messages : 3
    Par défaut
    Bonjour PBell,

    Cela fonctionne À MERVEILLE, juste en déplaçant les properties !! Vraiment génial.

    Un grand GRAND merci pour cette aide rapide et ultra efficace ! 😀👍

Discussions similaires

  1. Je ne trouve pas la requete pour modifier les entrées...
    Par guttts dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/08/2005, 19h17
  2. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24
  3. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  4. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 15h13
  5. pb pour modifier la luminositée des couleurs
    Par mathieutlse dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2003, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo