Como otros han respondido, es difícil saber exactamente lo que estás buscando sin los detalles. Este AppleScript debe ser un buen punto de partida, y se puede ajustar a sus necesidades. Se le pedirá que identifique una carpeta que contiene los archivos que desea poner en subcarpetas. He puesto una propiedad en la parte superior llamado removePeriods, que se puede establecer en true o false (sin las comillas). Si que es cierto, que se va a eliminar todos los períodos, desde el nombre de archivo y utilizar ese nombre para crear una carpeta. Por supuesto, usted puede ajustar que ser los signos de puntuación que quisiera. Usted podría tener la tira de otros signos de puntuación así. Por último, se toma el archivo y lo traslada a la nueva carpeta.
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 tiene carpetas dentro de carpetas, que es otro nivel, pero se puede hacer con otro bucle. Si desea que todas las nuevas carpetas con archivos en ellos para ir a un nuevo lugar, usted sólo tiene que agregar la ruta de acceso. Si desea extraer sólo el nombre antes de la primera marca de puntuación para hacer la carpeta, usted puede establecer el nombre del primer elemento de texto solamente. Probablemente también desee agregar una comprobación para asegurarse de que no hay ya una carpeta con el nombre que se están creando.
EDIT: A petición de otro usuario, voy a agregar una nota para aclarar por qué, me puse rootFolder a una propiedad en lugar de un estándar de la variable. En la foto de arriba, parece que todos los OP archivos están en la carpeta películas. Una propiedad, en AppleScript (y en términos simples), es una variable que se guarda (almacenado) entre pistas. Se guardará hasta que el script se compila de nuevo, momento en el cual se ajustará a la "". Una variable normal no tendrá memoria de una ejecución anterior de la secuencia de comandos. Yo elegí hacer rootFolder una propiedad de manera que el usuario no tiene que seleccionar manualmente la carpeta de proceso en cada carrera, sólo la primera ejecución. Sin embargo, usted puede reemplazar el comienzo de la secuencia de comandos a través de la 'end if' con las siguientes dos líneas de código:
set rootFolder to choose folder
set removePeriods to true
También puede especificar la ruta a la carpeta en lugar de que el usuario seleccione. Hay muchas opciones. También debo decir de nuevo que esto no es un guión terminado la intención de uso final, he creado como un lugar para empezar. Sin embargo, he utilizado esta fundación como parte de una mucho más grande, más complicada secuencia de comandos, para reorganizar hacia arriba de 500.000 archivos agrupados en nombre único de carpetas, así que confío en la estructura.