Назад | Перейти на главную страницу

Таблицы форматирования

Используя несколько фрагментов кода здесь и на веб-сайте 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 десятичных знака?

Вы можете использовать строку формата в вычисляемом свойстве, чтобы ограничить вывод двумя цифрами. Вы также можете использовать -AutoSize (или просто -a) параметр Format-Table командлет для корректировки ширины столбца. Полный пример:

$ body = Get-Folder -name vm | Get-VM | Get-Snapshot | Выберите Имя, ВМ, @ {name = 'SizeMb'; выражение = {'{0: 0.00}' -f $ _. SizeMb}}, Создано | Out-String