1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
-- renome les fichiers d'un dossier avec des règles
tell application "Finder"
-- Sélectionne le dossier
set F to choose folder with prompt "Sélectionner le dossier dont il faut changer les fichiers :"
-- Sélectionne les fichiers du dossier
set Listfichiers to every file of the folder F
-- confirmation finale ! (par défaut c'est cancel)
display dialog "Confirmer le changement irréversible des noms des " & (count of Listfichiers) & " fichiers du dossier " & F & " !!" with icon stop default button 1
-- initialise les caractères alphabetiques
set Alpha to {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
set Alpha to Alpha & {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Y", "Z"}
-- changement en boucle
repeat with i from 1 to (count of Listfichiers)
-- lit le nom du fichier
set Ancien to (name of item i of Listfichiers)
-- L = longeur du nom
set L to length of Ancien
-- initialise les positions des lettres et des tirets
set PosAlpha to 0
set PosTiret to 0
-- boucle sur les lettres du nom est extrait les positions du premier alpha et dernier tiret
repeat with c from 1 to L
if (PosAlpha = 0) and ((character c of Ancien) is in Alpha) then set PosAlpha to c
if (character c of Ancien is "-") then set PosTiret to c
end repeat
-- vérifie que c'est correct (PosAlpha < PosTiret)
if PosAlpha < PosTiret then
-- Nouveau nom = ancien (de PostAlpha à PosTiret) + Ancien
set Nouveau to (characters PosAlpha thru PosTiret of Ancien) & Ancien
--change le nom du fichier
set the name of item i of Listfile to Nouveau
else
-- il faudrait rajouter ici la gestion des erreurs lorsque il n'y a pas de tirets ou d'alpha ou le dernier tiret est avant l'alpha...
end if
end repeat
-- informe l'utilisateur
display dialog "Les " & (count of Listfichiers) & " fichiers ont été renommés" with icon caution
end tell |
Partager