Сценарій, щоб видалити всі групи в контактах


2

Я хотів би мати сценарій для видалення всіх моїх груп у своїх контактах. Якось у мене з’явилася якась помилка реплікації, в результаті якої було понад 500 груп.
Видалити їх по черзі - це не варіант.

Спробував цей сценарій, але він не справляється, мені доведеться ввести багато назв груп і через деякий час срип припиняється, навіть якщо не всі групи були видалені.

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

Будь-яка допомога буде дуже вдячна.

Відповіді:


7

Причина того, що скрипт не видаляє всі фіктивні групи, полягає в тому, що він повторюється лише 50 разів, тому він видалить лише 50 за один раз.

Цей скрипт буде видаляти кожну групу з ім'ям, яке ви вводите (він запитує вас у діалоговому вікні), поки він не зможе знайти більше:

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

1
Даніел Спасибі, чудово працює. Навіть коли я повторював свій сценарій декілька тем, це не справило справи. Дякуємо за ваше рішення. Найбільше цінується
Джеймс

У мене було безліч назв груп наступним чином: "<Z name = / syncservicesagent / NoCategoryLabel comment = 'та сама мітка, яка використовується для пункту No Category у списках категорій"> No Category </Z> "Простий скрипт не працював, але вище тривалий зробив трюк. Дякую, що поділився.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.