0

这是我在 stackoverflow 上的第一篇文章。我花了数周时间试图让 Applescript 从联系人(Mac 地址簿)中已建立的组(不是智能组)中删除人员。该脚本删除了几个人,然后发出错误。如果我在发出错误后重新运行脚本,它将从组中删除更多人,然后再次发出相同的错误。我可以继续这样做,直到最终每个人都从组中删除。我不明白为什么在发出错误后重新运行脚本时会发出错误,导致在再次发出错误之前又删除了几个人。- 再一次,我可以继续重新运行脚本,直到最终每个人都从组中删除。这表明联系人记录没有损坏。

我试过移动 SAVE 命令,但没有帮助。我要从中删除联系人的组标记为“家庭”。

发出的错误是......错误“联系人出错:无法获取组\“家庭\”。” 来自“家庭”组的号码 -1728

tell application "Contacts"
    set group_list to name of every group

    repeat with anItem in group_list
        set AppleScript's text item delimiters to ""
        repeat 1 times
            if first item of anItem is not "$" then exit repeat

            set AppleScript's text item delimiters to "$"
            set gruppe to text item 2 of anItem
            if group gruppe exists then

                --remove every person from group
                repeat with person_to_remove in every person in group gruppe
                    set firstName to first name of every person in group gruppe
                    set group_count to count every person in group gruppe
                    remove person_to_remove from group gruppe
                    save
                end repeat

            end if

        end repeat

    end repeat
    save
    return "Done"
end tell
4

1 回答 1

2

我觉得你很努力。无需更改 applescripts 文本项分隔符,您仍然可以找出该组是否以 $a 开头的组名

创建一个 1 次循环只是很奇怪,不知道你为什么选择这样做。

您知道该组已经存在,因为您正在遍历它们,因此也不需要

所以在这里

tell application "Contacts"
    set group_list to name of every group

    repeat with aGroup in group_list
        if first item of aGroup is "$" then
            set thePeople to every person in group aGroup

            repeat with aPerson in thePeople
                remove aPerson from group aGroup
            end repeat

        end if
    end repeat
    save
end tell
于 2013-10-09T02:13:37.077 回答