Powershell select object cmdlet仅抓取第一个属性

Powershell select object cmdlet仅抓取第一个属性,powershell,Powershell,当我使用select-object cmdlet时,它只从指定给它的属性列表中获取第一个属性。比如说 Get-ChildItem C:\tmp | Select-Object Name, CreationTime, Length 只返回名称,而不返回CreationTime或长度。如果我将CreationTime放在第一位,则只返回CreationTime,而不返回其他属性。select语句似乎只处理第一个参数,而忽略其余参数。我甚至尝试过使用-property参数,但也没有用 这看起来是一个

当我使用select-object cmdlet时,它只从指定给它的属性列表中获取第一个属性。比如说

Get-ChildItem C:\tmp | Select-Object Name, CreationTime, Length
只返回名称,而不返回CreationTime或长度。如果我将CreationTime放在第一位,则只返回CreationTime,而不返回其他属性。select语句似乎只处理第一个参数,而忽略其余参数。我甚至尝试过使用-property参数,但也没有用

这看起来是一个非常基本的问题,但我在这个问题上哪里做错了

我已经确认我有PS 3.0。这里是我的命令行的逐字复制/粘贴,因为您可以看到只返回名称,而不返回长度

PS C:\tmp> $psversiontable

Name                           Value
----                           -----
PSVersion                      3.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.18046
BuildVersion                   6.2.9200.16434
PSCompatibleVersions           {1.0, 2.0, 3.0}
PSRemotingProtocolVersion      2.2


PS C:\tmp> Get-ChildItem | select Name,Length

Name
----
dls
gallery_uploads.txt
k.ps1
myscript.ps1
uploads.txt

你知道为什么会这样吗?我已经在两台不同的机器上试过了,一台是Windows8,一台是WindowsServer2008R2,两台机器的结果都一样

为了对这篇文章有一个正式的回答,Shay Levy的评论非常准确,我的屏幕缓冲区很大,这意味着我必须向右滚动屏幕才能看到其他列


谢谢Shay,我无法在v2或v3中重现这种行为。起初我以为可能是空格,但即使有空格,我也会得到所有3个属性的返回。是的,这很奇怪。不过,我在两台机器上都遇到过这种情况,一台是Windows 8(上面的输出来自于此),另一台是Windows Server 2008 R2,它们都显示出相同的行为,我也无法重新编程。使用
-NoProfile
启动新的PowerShell会话,然后查看是否仍然看到问题。可能是一个正在更新文件/目录信息对象格式信息的模块。这是一个建议,但也没有帮助。我有几个朋友也测试过,对他们来说效果很好,我的机器中有小精灵,我会尝试重新启动。第二列是否可能右对齐并显示在控制台的右侧?有时会发生这种情况,尤其是当缓冲区宽度大于控制台宽度时。控制台是否有水平滚动条?