格式化脚本的管道结果

时间:2013-11-06 20:02:25

标签: powershell formatting piping powercli

我在Powershell中编写了以下脚本,该服务器在服务器上查找快照并根据调查结果报告电子邮件:

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

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

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

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

1 个答案:

答案 0 :(得分:2)

在尺寸之前使用"{0:N2} -f"。我想你可以这样做:

| Select Name, VM, @{n="Size";e{"{0:N2}" -f $_.SizeMb}}, Created | out-string

Powershell here

中有关数字格式的更多信息