Comme d'autres l'ont dit, il est difficile de savoir exactement ce que vous recherchez sans avoir les détails. Cet AppleScript devrait être un bon point de départ, et vous pouvez l'adapter à vos besoins. Il vous demandera d'identifier un dossier qui contient les fichiers que vous voulez placer dans des sous-dossiers. J'ai mis une propriété en haut appelée removePeriods, que vous pouvez définir à true ou false (sans guillemets). Si c'est vrai, tous les points seront supprimés du nom du fichier et ce nom sera utilisé pour créer un dossier. Bien sûr, vous pouvez modifier le nom pour qu'il contienne la ponctuation de votre choix. Vous pouvez également lui demander de supprimer toute autre ponctuation. Enfin, il prend le fichier et le déplace dans le nouveau dossier.
property rootFolder : ""
property removePeriods : true
--Assuming all the files you want to move are in one folder.
if rootFolder is "" then
set rootFolder to choose folder
end if
--Get a list of every visible file in the folder (assuming you don't want to process hidden files)
tell application "System Events" to set myFiles to ¬
every file in rootFolder whose visible is true
repeat with aFile in myFiles
--Get the file name
set aName to name of aFile
--If removePeriods property above is set to true, take all the periods out of the file name
if removePeriods then
set tid to text item delimiters
set text item delimiters to "."
if (count of text items of aName) is greater than 2 then
set aName to text items 1 through ((count of text items of aName) - 1) of aName
else
set aName to text item 1 of aName
end if
set text item delimiters to tid
set aName to every item of aName as text
end if
--Make a new folder with the name of the file, inside the rootFolder (the original folder you selected
tell application "Finder"
set newFolder to make new folder at rootFolder with properties {name:aName}
move (aFile as alias) to newFolder
end tell
end repeat
Si vous avez des dossiers dans des dossiers, c'est un autre niveau mais cela peut être fait avec une autre boucle. Si vous voulez que tous les nouveaux dossiers contenant des fichiers soient placés à un nouvel endroit, il vous suffit d'ajouter ce chemin. Si vous voulez retirer uniquement le nom avant le premier signe de ponctuation pour créer le dossier, vous pouvez définir aName sur le premier élément de texte uniquement. Vous voudrez probablement aussi ajouter une vérification pour vous assurer qu'il n'existe pas déjà un dossier portant le nom que vous créez.
EDIT : A la demande d'un autre utilisateur, j'ajoute une note pour clarifier pourquoi j'ai défini rootFolder comme une propriété plutôt que comme une variable standard. Dans la photo ci-dessus, il apparaît que tous les fichiers du PO sont dans le dossier movies. Une propriété, dans AppleScript (et en termes simples), est une variable qui est enregistrée (stockée) entre les exécutions. Elle sera sauvegardée jusqu'à ce que le script soit compilé à nouveau, auquel moment elle sera remise à "". Une variable normale n'aura aucune mémoire d'une exécution précédente du script. J'ai choisi de faire de rootFolder une propriété pour que l'utilisateur n'ait pas à sélectionner manuellement le dossier à traiter à chaque exécution, seulement à la première exécution. Cependant, vous pourriez remplacer le début du script jusqu'au 'end if' par les deux lignes de code suivantes :
set rootFolder to choose folder
set removePeriods to true
Vous pouvez également coder en dur le chemin d'accès au dossier plutôt que de laisser l'utilisateur le sélectionner. Il existe de nombreuses options. Je devrais également dire à nouveau que ce n'est pas un script fini destiné à une utilisation finale, je l'ai créé comme un endroit pour commencer. Cependant, j'ai utilisé cette fondation comme une partie d'un script beaucoup plus grand et plus compliqué, pour réorganiser plus de 500 000 fichiers regroupés dans des dossiers nommés de manière unique, donc je suis confiant dans la structure.