Skript zum Löschen aller Gruppen in Kontakten

Ich hätte gerne ein Skript, um alle meine Gruppen in meinen Kontakten zu löschen. Irgendwie bekam ich eine Art Replikationsfehler, der zu über 500 Gruppen führte.
Sie einzeln zu löschen ist keine Option.

Ich habe dieses Skript ausprobiert, aber es funktioniert nicht, ich muss zu viele Gruppennamen eingeben und nach einer Weile stoppt das Skript, auch wenn nicht alle Gruppen gelöscht wurden.

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

Jede Hilfe wird sehr geschätzt.

Antworten (1)

Der Grund, warum das Skript nicht alle falschen Gruppen löscht, ist, dass es sich nur 50 Mal wiederholt, also nur 50 auf einmal löscht.

Dieses Skript löscht jede Gruppe mit dem Namen, den Sie eingeben (es fragt Sie mit einem Dialogfeld), bis es keine weiteren finden kann:

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 Danke, funktioniert super. Selbst wenn ich mein Skript mehrmals wiederholt habe, hat es nicht funktioniert. Danke für deine Lösung. Am meisten geschätzt
Ich hatte eine Reihe von Gruppennamen wie folgt: "<Z name=/syncservicesagent/NoCategoryLabel comment='same label that is used for No Category item in category list'>No Category</Z>" Das einfache Skript funktionierte aber nicht der obige längere hat es geschafft. Ich danke Ihnen für das Teilen.