Powershell 是否显示outlook约会的持续时间?

Powershell 是否显示outlook约会的持续时间?,powershell,outlook,scripting,Powershell,Outlook,Scripting,我无法在列表框中显示每次约会的持续时间。我试图在11:30时在列表框中打印;(60)B/H或11:30-12:30;B/H,尽管不确定如何操作,请找人帮忙好吗 我尝试了$Duration和$。\u Duration,将它们放在“[…]Start.ToString('HH:mm')、$\uu.Subject}”'HH:mm'和$”之间。主题但是这些都没有成功 #listbox for calendar entry $Listboxcal= New-Object System.Windows.For

我无法在列表框中显示每次约会的持续时间。我试图在11:30时在列表框中打印;(60)B/H或11:30-12:30;B/H,尽管不确定如何操作,请找人帮忙好吗

我尝试了
$Duration
$。\u Duration
,将它们放在
“[…]Start.ToString('HH:mm')、$\uu.Subject}”'HH:mm'
$”之间。主题
但是这些都没有成功

#listbox for calendar entry
$Listboxcal= New-Object System.Windows.Forms.ListBox 
$Listboxcal.Location = New-Object System.Drawing.Size(10,55) 
$Listboxcal.Size = New-Object System.Drawing.Size(80,270) 
$Listboxcal.Height = 150

add-type -assembly “Microsoft.Office.Interop.Outlook” | out-null
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace(“MAPI”)
# https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.outlook.oldefaultfolders?view=outlook-pia
# Calendar = olFolderCalendar = 9
$calendar = $namespace.GetDefaultFolder(9)
# get today's calendar items!
 $cItems = $calendar.Items | Where-Object {$_.Start -ge $(Get-Date $StrCaldate) -and $_.Start -le $(Get-Date $StrCaldate).AddDays(1)} |Sort-Object -Property Start | foreach { "{0}; {1}" -f $_.Start.ToString('HH:mm'), $_.Subject } 
ForEach ($calendars in $cItems) {[void]$Listboxcal.Items.Add($calendars)}

日历约会具有持续时间属性。您只需将其添加到
$cItems
变量中即可

$cItems = $calendar.Items | Where-Object {$_.Start -ge $(Get-Date $StrCaldate) -and $_.Start -le $(Get-Date $StrCaldate).AddDays(1)} |Sort-Object -Property Start | foreach { "{0}; ({1}) {2}" -f $_.Start.ToString('HH:mm'), $_.Duration, $_.Subject }
当我在自己的日历上运行此功能时,我会得到以下结果:

16:30;(60)任命1

18:30; (120)约会2

它使用Duration属性为我工作:

$calendar.Items | Select -First 1 | %{ $_.StartUTC.Tostring("hh:mm") `
+ "; (" + $_.Duration + ") " + $_.Subject}