在richtextbox中显示表格输出

时间:2014-03-09 12:54:28

标签: winforms powershell richtextbox powershell-studio

刚刚安装了PowerShell Studio,我试图在richtextbox中查看某些VMware命令的结果。

例如,当我运行get-vm时,它显示数据正常(我将字体更改为Lucida控制台 - 看起来没问题),常规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 个答案:

答案 0 :(得分:0)

您的richtextbox看起来像列表格式的结果。将结果导入Format-Table cmdlet,然后将其导入Out-String以强制执行表格格式:

... | Format-Table | Out-String

答案 1 :(得分:0)

您需要使用以下固定大小字体之一来显示输出: 索拉 快递新 Lucida控制台