Script para eliminar todos los grupos en los contactos

Me gustaría tener un script para borrar todos mis grupos en mis Contactos. De alguna manera obtuve una especie de error de replicación que resultó en más de 500 grupos.
Eliminarlos uno por uno no es una opción.

Probé este script, pero no hace el trabajo, tengo que ingresar muchos nombres de grupos y después de un tiempo, el script se detiene incluso cuando no se han eliminado todos los grupos.

tell application "Contacts" 
repeat 50 times 
set theGroup to group "MyGroupName" 
delete theGroup 
end repeat 
save
end tell

Cualquier ayuda será muy apreciada.

Respuestas (1)

La razón por la que el script no elimina todos los grupos falsos es que solo se repite 50 veces, por lo que solo eliminará 50 de una sola vez.

Este script eliminará todos los grupos con el nombre que ingresaste (te pregunta con un cuadro de diálogo) hasta que no pueda encontrar más:

set counter to 0
display dialog "Name of group to delete?" default answer ""
set theGroupName to text returned of result
tell application "Contacts"
    repeat
        try
            set theGroup to group theGroupName
            delete theGroup
            set counter to counter + 1
        on error
            exit repeat
        end try
    end repeat
    save
    display dialog "Removed " & counter & " instances of the group" with icon caution buttons {"OK"} default button "OK"
end tell
Daniel Gracias, funciona muy bien. Incluso cuando repetí mi guión varias veces, no funcionó. Gracias por tu solución. Más apreciado
Tenía un montón de nombres de grupos de la siguiente manera: "<Z name=/syncservicesagent/NoCategoryLabel comment='misma etiqueta que se usa para el elemento Sin categoría en las listas de categorías'>Sin categoría</Z>" El script simple no funcionó pero el anterior más largo hizo el truco. Gracias por compartir.