3

刚刚安装了 PowerShell Studio,我正在尝试在富文本框中查看一些 VMware 命令的结果。

例如,当我运行时get-vm,它显示数据很好(我将字体更改为 Lucida Console- 并且看起来不错),get-vm富文本框中的常规结果:

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

富文本框中的命令行是:

$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 

无论是使用 Richtextbox 还是任何其他控件,我如何才能获得与 PowerShell 控制台中的结果一样的结果?

4

2 回答 2

0

您需要使用以下固定大小字体之一来显示输出: Consolas Courier New Lucida Console

于 2014-12-13T18:02:50.110 回答
0

看起来您的richtextbox 以列表格式为您提供结果。在将结果Format-Table通过管道传输到 cmdletOut-String以强制执行表格格式之前,将其传输到 cmdlet:

... | Format-Table | Out-String
于 2014-03-09T15:08:04.637 回答