格式化表格

格式化表格

通过使用这里和 VMware 网站中的几个代码片段,我创建了以下有效的代码:

Connect-ViServer server
$body = Get-Folder -name vm | Get-VM | Get-Snapshot | Select Name, VM, SizeMb, Created | Out-String 
send-mailmessage -From "myemail.com" -To "myemail.com" -SmtpServer "myserver.com" -Body $body -Subject "Snapshot Report"

我从中获得的输出如下所示:

Name                VM                       SizeMB Created            
----                --                       ------ -------            
snapshot name       server       ...3507232666015625 11/6/2013 11:53...
snapshot name       server       ...4918060302734375 11/6/2013 10:30...
snapshot name       server...    ...0483551025390625 11/6/2013 10:32:...
snapshot name       server       ...2000579833984375 11/6/2013 3:58:34 PM

我认为必须有一种方法可以将输出格式化为准确显示大小(以兆字节为单位,最多只有 3 位小数)并显示整个创建时间。我知道我的问题在这里:

| Select Name, VM, SizeMb, Created | out-string

是否有人知道如何格式化输出Select以指定最多 2-3 位小数?

答案1

您可以在计算属性中使用格式字符串将输出限制为两位数。您还可以使用cmdlet 的-AutoSize(或简称-a)参数Format-Table来更正列宽。完整示例:

$body = Get-Folder -name vm | Get-VM | Get-Snapshot | 选择名称,VM,@{name='SizeMb';expression={'{0:0.00}' -f $_.SizeMb}},已创建| Out-String

相关内容