从联系人组中删除人员(在Mac地址簿中)

时间:2013-10-08 19:04:20

标签: macos applescript contacts addressbook

这是我在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

1 个答案:

答案 0 :(得分:2)

我认为你正在努力。没有必要更改applescripts文本项分隔符,您仍然可以找到该组是否具有$ a组名的开头

创建一个时间循环很奇怪,不知道为什么你选择这样做。

你知道该组已经存在,因为你正在循环它们所以不需要那个

所以这里是

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