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

问题描述 投票:0回答:1

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

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

发出的错误是......错误“联系人收到错误:无法获取组\”Family \“。”数字-1728来自“Family”组

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
macos applescript contacts addressbook
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.