在PowerShell中选择多个列

时间:2013-03-27 15:22:27

标签: powershell-v3.0

这可能是一个非常noob的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
----
everything
SCOrch
Server 2012 Base Image
Server 2012 DC

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

提前致谢

1 个答案:

答案 0 :(得分:8)

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

看一下这个截图:

buffer wider than window

buffer matches window width

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