vbscript将应用于一个PST文件的所有规则复制到另一个PST文件
我有两个pst文件。我想将应用于第一个pst文件的所有规则应用于第二个pst文件。是否可以使用vbscript和不使用VBA来执行此操作。我认为VBA只能在Outlook本身上运行,不能作为独立脚本运行 我有两个pst文件。我想将应用于第一个pst文件的所有规则应用于第二个pst文件。是否可以使用vbscript和不使用VBA来执行此操作 是的,可以使用VBScript执行此操作,因为VBScript可以使用与VBA相同的基于COM的Outlook Office Automation API,但对象是后期绑定的(因此,如果脚本中存在任何键入错误,则在运行它之前,您不会知道这些错误) 要将VBA转换为VBScript,需要执行以下操作:vbscript将应用于一个PST文件的所有规则复制到另一个PST文件,vbscript,outlook,Vbscript,Outlook,我有两个pst文件。我想将应用于第一个pst文件的所有规则应用于第二个pst文件。是否可以使用vbscript和不使用VBA来执行此操作。我认为VBA只能在Outlook本身上运行,不能作为独立脚本运行 我有两个pst文件。我想将应用于第一个pst文件的所有规则应用于第二个pst文件。是否可以使用vbscript和不使用VBA来执行此操作 是的,可以使用VBScript执行此操作,因为VBScript可以使用与VBA相同的基于COM的Outlook Office Automation API,但
*.vbs
文件中Option Explicit
CreateObject
和GetObject
函数,而不是VBA/VB6特定的构造函数或COM API调用
' Change this VBA/VB6:
Set reminder = New Outlook.Reminder
' To this VBS:
Set reminder = CreateObject("Outlook.Reminder")
Sub Foo()
Dim foo As String
foo = ""
Dim reminder As Outlook.Reminder
Set reminder = Outlook.Application.Reminders.Item(1)
End Sub
…成为此VBScript:
Option Explicit
Sub Foo()
Dim foo
foo = ""
Dim reminder
Set reminder = GetObject( "Outlook.Application" ).Reminders.Item(1)
End Sub
Call Foo ' Enter into the Foo() subroutine from the top-level script.
我认为VBA只能在Outlook本身上运行,不能作为独立脚本运行
但是,当使用VBScript(从
cscript
、wscript
或任何其他活动脚本主机(如IIS)运行)时,您仍然使用与VBA相同的Office automation API,因此您仍然需要在计算机上安装Outlook,并在正常桌面会话中运行脚本(而不是会话0或作为无头进程)。您还需要确保脚本的主机与Outlook(即x86与x64)具有相同的ISA(“比特度”)。“不是会话0”的意思是?我是否应该使用cscript exe在任务计划程序中计划脚本。@itsraja会话0是一个单独的“无头”进程运行服务的Windows中的用户会话。Office COM automation在无头场景中不受支持,例如在会话0中运行(虽然它可能仍然可以工作,但Microsoft不支持它,并且您可能会遇到一些问题)。可将计划任务配置为在会话0或交互式桌面会话中运行-请参阅此处:
Option Explicit
Sub Foo()
Dim foo
foo = ""
Dim reminder
Set reminder = GetObject( "Outlook.Application" ).Reminders.Item(1)
End Sub
Call Foo ' Enter into the Foo() subroutine from the top-level script.