6

这可能是一个非常菜鸟的 powershell 问题,但在这里。

在使用特定 cmdlet 时,我只想选择几个属性进行显示,但是当我使用 select 语句将它们组合在一起时,只会显示 select 语句中的第一个属性。

例如,我感兴趣的 cmdlet 是 Get-VM

当我自己执行 Get-VM 时,我会得到一些默认字段:

    Name                   State       CPUUsage(%) MemoryAssigned(M) Uptime     Status
----                   -----       ----------- ----------------- ------     ------
everything             OffCritical 0           0                 00:00:00   Cannot connect to virtual machine configuration storage
SCOrch                 Running     0           1393              1.05:02:16 Operating normally
Server 2012 Base Image Off         0           0                 00:00:00   Operating normally
Server 2012 DC         Off         0           0                 00:00:00   Operating normally

现在,假设我只想显示名称和状态。我试过Get-VM | select Name,State 了,我只返回了 Name 列

Name
----
everything
SCOrch
Server 2012 Base Image
Server 2012 DC

我只将第一个参数传递给返回的 select 语句,它只是忽略了其他参数。我怎样才能只返回我想要的列?

提前致谢

4

1 回答 1

12

我怀疑缓冲区/窗口的大小有问题。如果缓冲区比缓冲区宽,则某些列可能会变得“不可见”。默认情况下,状态[enum](阅读:[int]伪装)将始终右对齐。名称 ( [string]) 将左对齐。怀疑您只需更改顺序即可看到所有内容。

看看这个截图:

缓冲区比窗口宽

缓冲区匹配窗口宽度

这是相同的命令,我只是更改了窗口的宽度以匹配缓冲区的宽度......看起来很熟悉?

于 2013-03-27T21:08:32.303 回答