Applescript. Changer le nom d'un fichier.

Danheux

Membre confirmé
8 Août 2004
77
1
91
Comment faire pour changer le nom d'un fichier au moyen d'un script?
Je n'ai pas trouvé dans Applescript in a nutshell

Merci d'avance.

CD
 
Danheux a dit:
Comment faire pour changer le nom d'un fichier au moyen d'un script?
Je n'ai pas trouvé dans Applescript in a nutshell

Perso, et pour eviter tout probleme j'utilise le shell:
(**********************************************************************************************************
Rename
**********************************************************************************************************)
on Rename(oldName, newName)
if oldName is not equal to newName then
set cmd to "mv -f " & quoted form of oldName & " " & quoted form of newName
do shell script cmd
end if
end Rename


Cordialement
 
Danheux a dit:
Comment faire pour changer le nom d'un fichier au moyen d'un script ?

Voici un exemple de droplet (par ailleurs parfaitement inutile :D) qui utilise le Finder pour renommer le fichier glissé sur son icône.
Copie le code et colle-le dans la fenêtre de l'Éditeur de scripts, puis enregistre le document en tant qu'application.

on open theSelection
repeat with thisItem from 1 to (count every item in theSelection as list)
set thisItem to item thisItem of (theSelection as list)
if folder of (info for thisItem) is false then
set oldName to name of (info for thisItem)
display dialog "Entrez un nouveau nom :" default answer oldName buttons {"Annuler", "Renommer"} default button 2 with icon note
if button returned of the result is "Renommer" then
set newName to text returned of the result
tell application "Finder" to set name of thisItem to newName​
else
return​
end if​
end if​
end repeat​
end open


P.S. : J'ai choisi de faire en sorte que ça ne fonctionne qu'avec des fichiers.
Pour que ça marche avec des dossiers, il suffit de supprimer la boucle conditonnelle "if folder of (info for thisItem) is false then" / "end if".
 
Didier Guillion a dit:
Perso, et pour eviter tout probleme j'utilise le shell:
(**********************************************************************************************************
Rename
**********************************************************************************************************)
on Rename(oldName, newName)
if oldName is not equal to newName then
set cmd to "mv -f " & quoted form of oldName & " " & quoted form of newName
do shell script cmd
end if
end Rename


Cordialement


D'abord merci à vous qui avez répondus.
Pour faire le test, j'ai créé avec TextEdit sur le bureau un fichier texte nommé "Jour" que je voudrais changer en "Nuit".
Malheureusement je ne parviens pas à trouver l'astuce pour que oldname et newname soient considérés comme noms de fichiers. Quoi que j'aie essayé, notamment avec reference

set Jour to a reference to (the name of file "Jour" of desktop)

mais ça recueille le string "Jour" et non le nom du fichier "Jour".

En fait je cherche à bousiller au moyen d'une appli cliquable un fichier de préférence situé dans le Dossier Préférences de Classic. L'idée était de créer avec l'intruction make un fichier vide et de l'envoyer with replacing à la bonne place. Et bien, ça ne se substitue pas la cible et on remarque une légère différence de formatage entre les nom des deux fichiers.
Il y a quelque temps j'avais essayé d'obtenir un résultat similaire avec move to Trash ou delete. Ca marche pô non plus, le message d'erreur étant no such file.

J'en conclus que les noms de fichier appartiennent à une classe à part, non référencée par AppleScript.

Une idée?

Je n'ai pas encore testé le script de DocEvil, mais je vais le faire.


Cordialement

Ch. Danheux
 
Eh bien, déjà, quel est ton logiciel ? Si tu utilise l'"Editeur Applescript" (fourni avec tous les macs), utilise la commande "Enregistrer" !!! Et puis, sinon, il doit bien y avoir un similaire dans les autres, non ?

Note : TOUT dépend de ton système ! Certains (ou tous ?!) de mes scripts de OS 9 ne marchent plus sur OS X ...

Chamyky
 
Danheux a dit:
J'en conclus que les noms de fichier appartiennent à une classe à part, non référencée par AppleScript.

Je me cite moi-même pour confirmer le fait.

J'ai touvé un script tout fait qui exécute la manip demandée avec n'importe quel fichier+extension, sauf avec les préférences.
Dans ce cas, pour que ça marche, il faut que l'ancien nom du fichier soit introduit dans le script par un copier/coller.
C'est vrai ausssi si on veut faire un

delete file "chemin, nom_d'un_fichier_référence"


Bonsoir à tous