需要更改格式

Need to change formatting

我正在编写一个脚本来收集邮箱大小并将输出放入一个菜单系统,以供用户用来创建电子邮件帐户的交互式脚本。我可以通过将其写入输出文件来实现我的目标,但我宁愿在运行时动态提取数据,而不必维护外部输出文件。

   Name                                    Available New Mailbox Space             Database Size
   ----                                    ---------------------------             -------------
1) abc_2013                            66.16 MB (69,369,856 bytes)             320.3 GB (343,865,819,136 bytes)
2) abcPublicFolders1_2013               1.344 GB (1,442,611,200 bytes)          142.8 GB (153,276,645,376 bytes)
3) abcJournal1_2013                    42.08 GB (45,178,290,176 bytes)         48.13 GB (51,673,825,280 bytes)
4) abc3_2013                           30.7 MB (556,498,944 bytes)            204.9 GB (219,982,856,192 bytes)
5) Abc1_2013                           13.7 MB (643,497,984 bytes)            186.1 GB (199,850,196,992 bytes)
6) Abc2500_2013                        28.09 MB (29,458,432 bytes)             896 MB (939,524,096 bytes)
7) ABC2_2013                           27.7 MB (238,714,880 bytes)            100 GB (107,374,182,400 bytes)


$MailboxDatabases = Get-MailboxDatabase -Status | Select @{ Label=”Name”; Expression={$_.Name} }, @{ Label=”Available New Mailbox Space”; Expression={$_.AvailableNewMailboxSpace} }, @{ Label=”Database Size”; Expression={$_.DatabaseSize} } -Skip 1 | Sort-Object AvailableNewMailboxSpace -Descending
$Count = 0
ForEach ($MailboxDatabase in $MailboxDatabases) { $Count++; Write-Host $Count")" $MailboxDatabase | Format-Table --HideTableHeaders }

相反,我得到以下内容

1) @{Name=Abc4_2013; Available New Mailbox Space=66.16 MB (69,369,856 bytes); Database Size=320.3 GB (343,865,819,136
 bytes)}
2) @{Name=abcPublicFolders1_2013; Available New Mailbox Space=1.344 GB (1,442,611,200 bytes); Database Size=142.8 GB (153,2
76,645,376 bytes)}
3) @{Name=abcJournal1_2013; Available New Mailbox Space=42.08 GB (45,178,290,176 bytes); Database Size=48.13 GB (51,673,825
,280 bytes)}
4) @{Name=Abc3_2013; Available New Mailbox Space=530.7 MB (556,498,944 bytes); Database Size=204.9 GB (219,982,856,19
2 bytes)}
5) @{Name=Abc1_2013; Available New Mailbox Space=613.7 MB (643,497,984 bytes); Database Size=186.1 GB (199,850,196,99
2 bytes)}
6) @{Name=AbcRoom2500_2013; Available New Mailbox Space=28.09 MB (29,458,432 bytes); Database Size=896 MB (939,524,096 byte
s)}
7) @{Name=Abc2_2013; Available New Mailbox Space=227.7 MB (238,714,880 bytes); Database Size=100 GB (107,374,182,400
bytes)}

为什么要为此使用 Format-Table?您可以使用 Write-Host 中的 $($MailboxDatabase.PropertyName) 访问任何 属性。所以如果你想拥有

 1) DB Abc4_2013 with available new mailbox space 66 MB and size 320 GB

你必须使用

Write-Host "$Count) $($MailboxDatabase.Name)  with available new mailbox space $($MailboxDatabase.AvailableNewMailboxSpace.ToMB()) MB and size $($MailboxDatabase.DatabaseSize.ToGB()) GB"

您可以从 Get-MailboxDatabase 行删除自定义表达式并使用:

$MailboxDatabases = Get-MailboxDatabase -Status | Select Name, AvailableNewMailboxSpace, DatabaseSize | Sort-Object AvailableNewMailboxSpace -Descending

其他资源: