求批量修改前缀为GD的Lotus群组类型脚本:从仅邮件(3)改多用途(0)
批量修改Lotus Domino指定群组类型的脚本实现
当然有办法搞定这个需求!我之前刚好帮同事写过类似的脚本,专门用来批量处理这类有特定命名规则的Lotus群组,下面就分享给你:
核心脚本(LotusScript代理)
这是一个可以直接在Domino Designer中部署的代理脚本,精准匹配你的需求:
Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument Dim groupType As Integer ' 指向当前打开的通讯录数据库(一般是names.nsf) Set db = session.CurrentDatabase ' 获取通讯录里的群组视图 Set view = db.GetView("Groups") ' 遍历所有群组文档 Set doc = view.GetFirstDocument() While Not(doc Is Nothing) Dim groupName As String groupName = doc.GetItemValue("ListName")(0) ' 严格匹配前两位为"GD"(忽略大小写和前后空格) If Left(Trim(Ucase(groupName)), 2) = "GD" Then groupType = doc.GetItemValue("GroupType")(0) ' 仅修改类型为"仅邮件(3)"的群组 If groupType = 3 Then Call doc.ReplaceItemValue("GroupType", 0) Call doc.Save(True, False) Print "已更新群组: " & groupName & " (类型从3→0)" End If End If Set doc = view.GetNextDocument(doc) Wend MsgBox "批量修改完成!", MB_OK, "操作提示" End Sub
操作步骤
- 打开Domino Designer,打开你的通讯录数据库(通常是
names.nsf)
- 打开Domino Designer,打开你的通讯录数据库(通常是
- 新建一个代理,选择「LotusScript」语言,运行方式设为「手动运行」
- 把上面的代码粘贴进去,保存代理
- 回到Notes客户端,打开通讯录,找到这个代理并运行即可
关键细节提醒
- 匹配逻辑:用
Left(Trim(Ucase(groupName)), 2)是为了避免大小写差异(比如gd、Gd)和群组名前后空格导致的漏匹配 - 群组类型对应值:Lotus Domino里
GroupType字段的标准取值:- 0 = 多用途群组
- 3 = 仅邮件群组
- 安全建议:建议先在测试环境跑一遍,或者先导出符合条件的群组做备份,再执行批量修改,避免误操作
如果你偏好命令行或者其他方式,也可以基于Domino的REST API来实现,但上面的LotusScript代理是最直接、最常用的方案。
内容的提问来源于stack exchange,提问作者Robert Lewi Kiedrowski
相关产品推荐
相关产品推荐

