# Applescript. Changer le nom d'un fichier.



## Danheux (27 Février 2005)

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


----------



## Didier Guillion (27 Février 2005)

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


----------



## Anonyme (27 Février 2005)

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 ) 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".


----------



## Danheux (2 Mars 2005)

Didier Guillion a dit:
			
		

> Perso, et pour eviter tout probleme j'utilise le shell:
> (**********************************************************************************************************
> Rename
> **********************************************************************************************************)
> ...




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


----------



## p4bl0 (6 Mars 2005)

salut !
je sugèere tout simplement :
do shell script "mv nomFichier noveauNom"
 @plus


----------



## Chamyky (21 Mars 2005)

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 (15 Avril 2005)

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


----------

