Formatando tabelas

1

Através do uso de vários trechos de código aqui e no site da VMware, criei o seguinte código que funciona:

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"

A saída que recebo é assim:

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

Eu acho que tem que haver uma maneira de formatar a saída para onde ela irá mostrar com precisão o tamanho em megabytes com um máximo de apenas 3 casas decimais e exibir o tempo todo criado. Meu problema eu sei é em algum lugar aqui:

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

Alguém sabe como formatar a saída de Select para especificar apenas um máximo de decimais de 2 a 3 dígitos?

    
por Valrok 06.11.2013 / 17:39

1 resposta

2

Você pode usar uma string de formato em uma propriedade calculada para limitar a saída a dois dígitos. Você também pode usar o parâmetro -AutoSize (ou simplesmente -a ) do cmdlet Format-Table para corrigir as larguras das colunas. Exemplo completo:

$body = Get-Folder -name vm | Get-VM | Get-Snapshot | Select Name, VM, @{name='SizeMb';expression={'{0:0.00}' -f $_.SizeMb}}, Created | Out-String

    
por 14.01.2014 / 06:14