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