Tu sintaxis es un poco torpe. Si utilizaras esto, probablemente funcionaría. Dicho esto, es 'obtener' la lista de notas de cada ciclo. Esto no es intrínsecamente malo, pero no es bueno y podría modificar los resultados.
delete item 2 of (get notes)
Algunas cosas a tener en cuenta:
Intente utilizar una lista para representar el notes
. Al eliminar notas, el contenido de notes
por lo que los resultados deberían ser más predecibles cuando se trabaja a partir de una lista estática. Por ejemplo, esto también debería funcionar.
set nList to notes
delete item 2 of nList
En general, si puedes hacer cosas que no estén relacionadas con la aplicación en cuestión, intenta hacerlas fuera del bloque tell. En este caso, calcular una fecha no está relacionado, así que establécelo de antemano.
Dado que todas las notas a eliminar se encuentran dentro de la misma carpeta, realice un bucle a través de esa carpeta en lugar de a través de cada nota. Puede eliminar la sentencia if then relacionada.
Para ayudar a realizar un seguimiento de las notas eliminadas, he añadido 'xList' para registrar las que se eliminan. Cuando se ejecuta desde script Editor, la lista aparecerá en el Resultado. Si planea ejecutarlo de alguna otra manera, necesitaría proporcionar explícitamente los resultados (por ejemplo, mostrar un diálogo, guardar los nombres de los elementos en un archivo de texto). Por supuesto, todas las notas borradas deberían aparecer en la carpeta "borradas recientemente", pero también lo haría cualquier otra nota borrada recientemente que pudiera distorsionar su comprensión de lo que el script borró.
Esto debería lograr su propósito:
set cutoffDate to (current date) - (14 * days)
tell application "Notes"
set mainFolder to folder "Notes"
set nList to notes of mainFolder
set xList to {}
repeat with aNote in nList
if (creation date) of aNote is less than cutoffDate then
set end of xList to name of aNote
delete aNote
end if
end repeat
xList -- list of deleted notes
end tell