目前我正在整理一个PowerShell脚本,我希望能够在增加会议时间的同时发送会议邀请(例如,如果第一次邀请发送到9:00会议,我希望第二次会议能够在9:30发出。
到目前为止,我所拥有的是。我可以从文本文件中读取电子邮件列表并发送邀请,但是我在为会议添加时间方面遇到了问题(AddMinutes()似乎不适用于会议邀请开始时间)
$emails = get-content emails.txt
$olAppointmentItem = 1
$o = new-object -comobject outlook.application
foreach ($element in $emails){
$a = $o.CreateItem($olAppointmentItem)
$a.meetingstatus=[Microsoft.Office.Interop.Outlook.olMeetingStatus]::olMeeting
$a.meetingstatus.olMeeting
$a.Start = [datetime]::ParseExact("09:00","hh:mm",$null)
$a.Duration = 30
$a.Subject = "Test Meeting"
$a.Body = "Just a test, please accept, then delete."
$a.Location = "Here"
$a.ReminderMinutesBeforeStart = 15
$a.ReminderSet = $True
$a.recipients.add($element)
$a.ForceUpdateToAllAttendees =$True
$a.send()
$a.Start.AddMinutes(+30)
}
$result = $a.Save()
答案 0 :(得分:0)
.AddMinutes()
适用于[DateTime]
对象,我必须检查.Start
接受的内容,或者您是否能够从中读取内容。从理论上讲,$a.Start.AddMinutes(+30)
只会返回与[datetime]
类似的Thursday, September 25, 2014 9:30:00 AM
对象。你没有把它分配给任何东西。
基本方法是将第一次保存到自己的变量
中$900am = [datetime]::ParseExact("09:00","hh:mm",$null)
$a.Start = $900am
然后在您尝试更改此位置的下方,您可以执行以下操作:
$a.Start = $900am.AddMinutes(30)
或者不打扰变量,只需再次调用方法ParseExact
。
$a.Start = ([datetime]::ParseExact("09:00","hh:mm",$null)).AddMinutes(30)
我不知道你的逻辑是否成立,所以我将不得不对此进行测试,但上述内容肯定有助于你的时间操纵。