IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Apple Script du Finder, Problème Add to file name
Options
Genug
posté 23 Nov 2018, 17:02
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 64
Inscrit : 13 Nov 2002
Lieu : Nantes Intramuros
Membre no 4 660



Bonjour,
Depuis un moment j'ai un souci avec l'Apple script du Finder Add to file name que j'utilise souvent pour ajouter des éléments aux nom de fichiers.

Quand je lance par exemple ajouter en préfixe "Add", le script ajoute Prefix à la fin du nom de fichier.
De même pour Suffix, cela vient se placer à la fin du nom de fichier.

Exemple:
VDN00051456.jpgPrefixSuffixSuffix


Je ne sais comment résoudre ce souci.

Cordialement.



--------------------
Dans la marine il faut saluer tout ce qui bouge et peindre le reste en gris
Mac Book Pro Intel 2,5 Ghz Intel Core i7 16 Go Os 10.12.6
Go to the top of the page
 
+Quote Post
M.V.
posté 24 Nov 2018, 15:42
Message #2


Adepte de Macbidouille
*

Groupe : Membres
Messages : 40
Inscrit : 2 Apr 2018
Membre no 204 602



Citation (Genug @ 23 Nov 2018, 17:02) *
Depuis un moment j'ai un souci avec l'Apple script du Finder Add to file name que j'utilise souvent pour ajouter des éléments aux nom de fichiers.

Bonjour,
Il vient d'où ce script ?
Tu peux le copier / coller ici ?
Merci

Ce message a été modifié par M.V. - 24 Nov 2018, 15:43.
Go to the top of the page
 
+Quote Post
Genug
posté 26 Nov 2018, 11:48
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 64
Inscrit : 13 Nov 2002
Lieu : Nantes Intramuros
Membre no 4 660



Bonjour
Citation (M.V. @ 24 Nov 2018, 15:42) *
Citation (Genug @ 23 Nov 2018, 17:02) *
Depuis un moment j'ai un souci avec l'Apple script du Finder Add to file name que j'utilise souvent pour ajouter des éléments aux nom de fichiers.

Bonjour,
Il vient d'où ce script ?

C'est un des scripts natif de l'Os
Citation
Tu peux le copier / coller ici ?

Ok:
Code
(*
Add to File Names

This script is designed to add a prefix or suffix to files in the front window of the desktop.
If no folder windows are open, the script will affect items on the desktop.

Copyright © 2001–2007 Apple Inc.

You may incorporate this Apple sample code into your program(s) without
restriction.  This Apple sample code has been provided "AS IS" and the
responsibility for its operation is yours.  You are not permitted to
redistribute this Apple sample code as "Apple sample code" after having
made changes.  If you're going to redistribute the code, we require
that you make it clear that the code was descended from Apple sample
code, but that you've made changes.
*)

-- The following line is disabled due to a Menu Manager bug
--set the source_folder to (choose folder with prompt "Pick the folder containing the files to rename:")

try
    tell application "Finder" to set the source_folder to (folder of the front window) as alias
on error -- no open folder windows
    set the source_folder to path to desktop folder as alias
end try

set the prefix_or_suffix to ""
repeat
    display dialog "Enter the prefix or suffix to use:" default answer the prefix_or_suffix buttons {"Cancel", "Prefix", "Suffix"}
    copy the result as list to {the prefix_or_suffix, the button_pressed}
    if the prefix_or_suffix is not "" then exit repeat
end repeat
set the item_list to list folder source_folder without invisibles
set source_folder to source_folder as string
repeat with i from 1 to number of items in the item_list
    set this_item to item i of the item_list
    set this_item to (source_folder & this_item) as alias
    set this_info to info for this_item
    set the current_name to the name of this_info
    if folder of this_info is false and ¬
        alias of this_info is false then
        if the button_pressed is "Prefix" then
            set the new_file_name to the (the prefix_or_suffix & the current_name) as string
        else
            set the new_file_name to the (the current_name & the prefix_or_suffix) as string
        end if
        my set_item_name(this_item, the new_file_name)
    end if
end repeat
beep 2

on set_item_name(this_item, new_item_name)
    tell application "Finder"
        --activate
        set the parent_container_path to (the container of this_item) as text
        if not (exists item (the parent_container_path & new_item_name)) then
            try
                set the name of this_item to new_item_name
            on error the error_message number the error_number
                if the error_number is -59 then
                    set the error_message to "This name contains improper characters, such as a colon (:)."
                else --the suggested name is too long
                    set the error_message to error_message -- "The name is more than 31 characters long."
                end if
                --beep
                tell me to display dialog the error_message default answer new_item_name buttons {"Cancel", "Skip", "OK"} default button 3
                copy the result as list to {new_item_name, button_pressed}
                if the button_pressed is "Skip" then return 0
                my set_item_name(this_item, new_item_name)
            end try
        else --the name already exists
            --beep
            tell me to display dialog "This name is already taken, please rename." default answer new_item_name buttons {"Cancel", "Skip", "OK"} default button 3
            copy the result as list to {new_item_name, button_pressed}
            if the button_pressed is "Skip" then return 0
            my set_item_name(this_item, new_item_name)
        end if
    end tell
end set_item_name


Voilà

Merci

Ce message a été modifié par baron - 26 Nov 2018, 17:06.
Raison de l'édition : Correction des balises QUOTE


--------------------
Dans la marine il faut saluer tout ce qui bouge et peindre le reste en gris
Mac Book Pro Intel 2,5 Ghz Intel Core i7 16 Go Os 10.12.6
Go to the top of the page
 
+Quote Post
teddy7545
posté 26 Nov 2018, 14:29
Message #4


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Citation
C'est un des scripts natif de l'Os
Peut être oui, mais sans doute pas de ton OS actuel ... tongue.gif
Je ne retrouve en tous les cas pas le script dans mon système 10.12.6

Une ligne a été désactivée mentionnant la présence d'un Bug qui ne semble pas exister chez moi (ce n'est pas la cause du dysfonctionnement mais ça limite un peu le script au "renommage" des fichiers du bureau uniquement quand aucune fenêtre n'est ouverte dans le Finder alors qu'il est capable d'aller renommer dans le répertoire de ton choix).
C'est pas très grave et on peut laisser comme ça en attendant.

Le problème se situe au niveau des deux lignes suivantes:
Code
display dialog "Enter the prefix or suffix to use:" default answer the prefix_or_suffix buttons {"Cancel", "Prefix", "Suffix"}
    copy the result as list to {the prefix_or_suffix,the button_pressed}

En fait display dialog "Enter the prefix or suffix to use:" default answer "" buttons {"Cancel", "Prefix", "Suffix"} renvoie d'abord le bouton et ensuite le texte
Citation
--> {button returned:"Suffix", text returned:"Test"}

Alors que la ligne "Copy the result ..." récupère ces paramètres dans le mauvais ordre (peut être un changement de comportement des commandes display dialog depuis la date ou elles ont été créées?)

Si tu remplace dans ton script :
Code
copy the result as list to {the prefix_or_suffix, the button_pressed}
par
Code
copy the result as list to {the button_pressed, the prefix_or_suffix}
ca devrait fonctionner mieux

Ce message a été modifié par teddy7545 - 26 Nov 2018, 19:22.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
Genug
posté 29 Nov 2018, 12:13
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 64
Inscrit : 13 Nov 2002
Lieu : Nantes Intramuros
Membre no 4 660



Citation (teddy7545 @ 26 Nov 2018, 14:29) *
Hello Teddy
Citation
C'est un des scripts natif de l'Os
Peut être oui, mais sans doute pas de ton OS actuel ... tongue.gif
Je ne retrouve en tous les cas pas le script dans mon système 10.12.6

C'est un script que je balade depuis longtemps de Mac en Mac

Une ligne a été désactivée mentionnant la présence d'un Bug qui ne semble pas exister chez moi (ce n'est pas la cause du dysfonctionnement mais ça limite un peu le script au "renommage" des fichiers du bureau uniquement quand aucune fenêtre n'est ouverte dans le Finder alors qu'il est capable d'aller renommer dans le répertoire de ton choix).
C'est pas très grave et on peut laisser comme ça en attendant.

Le problème se situe au niveau des deux lignes suivantes:
Code
display dialog "Enter the prefix or suffix to use:" default answer the prefix_or_suffix buttons {"Cancel", "Prefix", "Suffix"}
    copy the result as list to {the prefix_or_suffix,the button_pressed}

En fait display dialog "Enter the prefix or suffix to use:" default answer "" buttons {"Cancel", "Prefix", "Suffix"} renvoie d'abord le bouton et ensuite le texte
Citation
--> {button returned:"Suffix", text returned:"Test"}

Alors que la ligne "Copy the result ..." récupère ces paramètres dans le mauvais ordre (peut être un changement de comportement des commandes display dialog depuis la date ou elles ont été créées?)

Si tu remplace dans ton script :
Code
copy the result as list to {the prefix_or_suffix, the button_pressed}
par
Code
copy the result as list to {the button_pressed, the prefix_or_suffix}
ca devrait fonctionner mieux

Alors j'ai fait la modif, voilà ce que ça donne (PJ) mais cela ne fonctionne pas

Fichier(s) joint(s)
Fichier joint  Script.png ( 53.63 Ko ) Nombre de téléchargements : 17
 


--------------------
Dans la marine il faut saluer tout ce qui bouge et peindre le reste en gris
Mac Book Pro Intel 2,5 Ghz Intel Core i7 16 Go Os 10.12.6
Go to the top of the page
 
+Quote Post
teddy7545
posté 29 Nov 2018, 18:44
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Bonsoir,

Citation
C'est un script que je balade depuis longtemps de Mac en Mac
C'est bien ce que je pensais laugh.gif

Citation
Alors j'ai fait la modif, voilà ce que ça donne (PJ) mais cela ne fonctionne pas
J'avais testé la solution que j'avais proposé et ça fonctionne parfaitement sur un système 10.12.6
Il doit donc rester une petite erreur à corriger chez toi.
Quand tu dis ça ne fonctionne pas, tu devrais plutôt décrire ce qui se passe exactement.
Le comportement n'est certainement pas identique qu'avant.
Dans la pièces jointe je ne vois que les lignes que j'ai proposé de modifier mais pas ce que tu obtiens.

As tu regardé dans l'onglet réponse du cadre inférieur dans l'éditeur de Script ?
Tu devrais y trouver ce qui se passe.

Voilà ce que tu devrais avoir dans ton code (j'ai raccourci la deuxième partie pour alléger dans le forum mais le code de la fonction "on set_item_name" doit être conservé intégralement sans modification.
Code
try
    tell application "Finder" to set the source_folder to (folder of the front window) as alias
on error -- no open folder windows
    set the source_folder to path to desktop folder as alias
end try

set the prefix_or_suffix to ""
set the button_pressed to ""
repeat
    display dialog "Enter the prefix or suffix to use:" default answer the prefix_or_suffix buttons {"Cancel", "Prefix", "Suffix"}
    copy the result as list to {the button_pressed, the prefix_or_suffix}
    if the prefix_or_suffix is not "" then exit repeat
end repeat
set the item_list to list folder source_folder without invisibles
set source_folder to source_folder as string
repeat with i from 1 to number of items in the item_list
    set this_item to item i of the item_list
    set this_item to (source_folder & this_item) as alias
    set this_info to info for this_item
    set the current_name to the name of this_info
    if folder of this_info is false and ¬
        alias of this_info is false then
        if the button_pressed is "Prefix" then
            set the new_file_name to the (the prefix_or_suffix & the current_name) as string
        else
            set the new_file_name to the (the current_name & the prefix_or_suffix) as string
        end if
        my set_item_name(this_item, the new_file_name)
    end if
end repeat
beep 2
on set_item_name(this_item, new_item_name)
.....(CODE ORIGINAL A RECONDUIRE - NON MODIFIE ICI)
end set_item_name


Ce message a été modifié par teddy7545 - 29 Nov 2018, 18:45.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
Genug
posté 30 Nov 2018, 11:53
Message #7


Adepte de Macbidouille
*

Groupe : Membres
Messages : 64
Inscrit : 13 Nov 2002
Lieu : Nantes Intramuros
Membre no 4 660



Citation (teddy7545 @ 29 Nov 2018, 18:44) *
Bonsoir,

Bonjour

Citation
C'est un script que je balade depuis longtemps de Mac en Mac
C'est bien ce que je pensais laugh.gif

Apple Script est toujours natif dans les versions récentes?


Citation
Alors j'ai fait la modif, voilà ce que ça donne (PJ) mais cela ne fonctionne pas
J'avais testé la solution que j'avais proposé et ça fonctionne parfaitement sur un système 10.12.6
Il doit donc rester une petite erreur à corriger chez toi.
Quand tu dis ça ne fonctionne pas, tu devrais plutôt décrire ce qui se passe exactement.

Je veux dire que le résultat du script présente toujours la même erreur. Celle que je montre dans mon premier post.


Le comportement n'est certainement pas identique qu'avant.
Dans la pièces jointe je ne vois que les lignes que j'ai proposé de modifier mais pas ce que tu obtiens.

J'obtiens ce que tu vois en PJ

As tu regardé dans l'onglet réponse du cadre inférieur dans l'éditeur de Script ?
Tu devrais y trouver ce qui se passe.

Ah alors là, je découvre! Une fois la modif entrée, il faut jouer le script et voir ce qui s'affiche dans Réponses. C'est ça?
Comme tu le constate je ne suis pas expert!!


Du coup ça fonctionne!!

Voilà ce que tu devrais avoir dans ton code (j'ai raccourci la deuxième partie pour alléger dans le forum mais le code de la fonction "on set_item_name" doit être conservé intégralement sans modification.

Si je compare avec mon code, il n'y a que cette ligne ci-dessous qui n'y est pas
set the button_pressed to ""


Code
try
    tell application "Finder" to set the source_folder to (folder of the front window) as alias
on error -- no open folder windows
    set the source_folder to path to desktop folder as alias
end try

set the prefix_or_suffix to ""
set the button_pressed to ""

repeat
    display dialog "Enter the prefix or suffix to use:" default answer the prefix_or_suffix buttons {"Cancel", "Prefix", "Suffix"}
    copy the result as list to {the button_pressed, the prefix_or_suffix}
    if the prefix_or_suffix is not "" then exit repeat
end repeat
set the item_list to list folder source_folder without invisibles
set source_folder to source_folder as string
repeat with i from 1 to number of items in the item_list
    set this_item to item i of the item_list
    set this_item to (source_folder & this_item) as alias
    set this_info to info for this_item
    set the current_name to the name of this_info
    if folder of this_info is false and ¬
        alias of this_info is false then
        if the button_pressed is "Prefix" then
            set the new_file_name to the (the prefix_or_suffix & the current_name) as string
        else
            set the new_file_name to the (the current_name & the prefix_or_suffix) as string
        end if
        my set_item_name(this_item, the new_file_name)
    end if
end repeat
beep 2
on set_item_name(this_item, new_item_name)
.....(CODE ORIGINAL A RECONDUIRE - NON MODIFIE ICI)
end set_item_name



Un grand MERCI!


--------------------
Dans la marine il faut saluer tout ce qui bouge et peindre le reste en gris
Mac Book Pro Intel 2,5 Ghz Intel Core i7 16 Go Os 10.12.6
Go to the top of the page
 
+Quote Post
teddy7545
posté 30 Nov 2018, 16:13
Message #8


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Citation
Ah alors là, je découvre! Une fois la modif entrée, il faut jouer le script et voir ce qui s'affiche dans Réponses. C'est ça?
Oui ça permet de voir tout ce qui se passe pendant l'exécution du script et éventuellement pourquoi il ne fait pas ce que tu voudrais qu'il fasse.

Citation
Si je compare avec mon code, il n'y a que cette ligne ci-dessous qui n'y est pas --> set the button_pressed to ""
Oui j'avais en effet oublié de préciser que j'avais fais aussi cette adaptation pour éviter une erreur par absence de déclaration de la variable dans le script mais en réalité dans ce cas ça fonctionne correctement même sans ajouter cette ligne

Citation
Du coup ça fonctionne!!
Super tant mieux cool.gif

Moyennant quelques légères modifications, il est possible sur cette base de faire toutes les modifications de nom de fichier que tu souhaites.
Par exemple, pour corriger ce que le script erroné avait fait dans mon bureau quand j'ai testé ton script initial, j'ai utilisé ce même script (adapté) pour supprimer x caractères à la fin de chaque nom wink.gif


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
Genug
posté 2 Dec 2018, 19:04
Message #9


Adepte de Macbidouille
*

Groupe : Membres
Messages : 64
Inscrit : 13 Nov 2002
Lieu : Nantes Intramuros
Membre no 4 660



Citation (teddy7545 @ 30 Nov 2018, 16:13) *
Bonsoir Teddy,

Citation
Ah alors là, je découvre! Une fois la modif entrée, il faut jouer le script et voir ce qui s'affiche dans Réponses. C'est ça?
Oui ça permet de voir tout ce qui se passe pendant l'exécution du script et éventuellement pourquoi il ne fait pas ce que tu voudrais qu'il fasse.

Citation
Si je compare avec mon code, il n'y a que cette ligne ci-dessous qui n'y est pas --> set the button_pressed to ""
Oui j'avais en effet oublié de préciser que j'avais fais aussi cette adaptation pour éviter une erreur par absence de déclaration de la variable dans le script mais en réalité dans ce cas ça fonctionne correctement même sans ajouter cette ligne

Citation
Du coup ça fonctionne!!
Super tant mieux cool.gif

Encore merci

Moyennant quelques légères modifications, il est possible sur cette base de faire toutes les modifications de nom de fichier que tu souhaites.
Par exemple, pour corriger ce que le script erroné avait fait dans mon bureau quand j'ai testé ton script initial, j'ai utilisé ce même script (adapté) pour supprimer x caractères à la fin de chaque nom wink.gif

Oui je suppose qu'on peut jouer avec plusieurs combinaisons pour Ajouter/Supprimer mais je ne suis pas assez expert pour me lancer dans ces expérimentations!


--------------------
Dans la marine il faut saluer tout ce qui bouge et peindre le reste en gris
Mac Book Pro Intel 2,5 Ghz Intel Core i7 16 Go Os 10.12.6
Go to the top of the page
 
+Quote Post

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 : 29th March 2024 - 16:23