Показать табличный вывод в richtextbox

Только что установил PowerShell Studio и я пытаюсь просмотреть результаты некоторых команд VMware в richtextbox.

Когда я бегу get-vmнапример, он показывает данные нормально (я изменил шрифт на Lucida Console- и выглядит нормально), обычный get-vm Результаты в поле richtext:

Name : xxx
Cluster : xxx
ESX Host : esx6
Datastore : xxx
MemoryGB : 8
NumCpu : 2
ProvisionedSpace(GB) : 282
UsedSpace(GB) : 281
OS : Microsoft Windows Server 2008 R2 (64-bit)

Но когда я пытаюсь бежать (get-vm).Guest.Disks данные, показанные не очень хорошо в richtextbox, выглядят так:

Capacity:192515403776,
FreeSpace:43895230464,
Path:E:\

Capacity:75053920256,
FreeSpace:12630409216,
Path:C:\

когда он запускается в обычной консоли PowerShell, он должен выглядеть так:

Volume Capacity(GB) FreeSpace(GB) % FreeSpace
------ ------------ ------------- -----------
E:\    120          13            11
C:\    120          15            12

Командная строка в PowerShell:

((Get-VM $vm).Guest.disks) | Format-Table @{N="Volume";E={$_.Path}},
    @{N="Capacity(GB)";E={[System.Math]::Round($_.CapacityGB)};a="left"},
    @{N="FreeSpace(GB)";E={[System.Math]::Round($_.FreeSpaceGB)};a="left"},
    @{N="% FreeSpace";E={[math]::Round((100 * ($_.FreeSpacegb / $_.Capacitygb)),0)};a="left"} -auto |
  Out-String

командная строка в richtextbox:

$richtextbox1.AppendText((Get-VM $text).Guest.disks) |
  Format-Table @{N="Volume";E={$_.Path}},
    @{N="Capacity(GB)";E={[System.Math]::Round($_.CapacityGB)};a="left"},
    @{N="FreeSpace(GB)";E={[System.Math]::Round($_.FreeSpaceGB)};a="left"},
    @{N="% FreeSpace";E={[math]::Round((100 * ($_.FreeSpacegb / $_.Capacitygb)),0)};a="left"} -auto |
 Out-String 

Как я могу получить результаты, как это выглядит в консоли PowerShell, с richtextbox или любым другим элементом управления?

2 ответа

Для отображения вывода необходимо использовать один из следующих шрифтов фиксированного размера: Consolas Courier New Lucida Console

Похоже, ваш richtextbox дает вам результаты в формате списка. Отправьте свои результаты в Format-Table Командлет перед отправкой в Out-String чтобы обеспечить формат таблицы:

... | Format-Table | Out-String
Другие вопросы по тегам