通过在这里和VMware的网站上使用几个代码片段,我创build了以下代码:
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个小数)的大小,并显示所创build的整个时间。 我知道的问题在这里:
| Select Name, VM, SizeMb, Created | out-string
有谁知道如何格式输出从Select ,以指定只有最多2-3位数的小数?
您可以使用计算属性中的格式string将输出限制为两位数。 您还可以使用Format-Table cmdlet的-AutoSize (或简单的-a )参数来更正列宽。 完整的例子:
$ body = Get-Folder -name vm | Get-VM | Get-Snapshot | select名称,VM,@ {name ='SizeMb'; expression = {'{0:0.00}'-f $ _。SizeMb}},Created | 输出string