1

サーバー上のスナップショットを探し、その結果に基づいて電子メールを報告する次のスクリプトを 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桁の小数点以下を指定するために出力をフォーマットする方法を知っている人はいますか?

4

1 に答える 1

2

"{0:N2} -f"サイズの前に使用してください。私はあなたがそのようなことができると思います:

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

Powershell での数値の書式設定の詳細については、こちらをご覧ください

于 2013-11-06T20:23:21.330 に答える