我已经读过Format-Table(-GroupBy
)的输出不是
分组,你需要1.排序和2.传递-AutoSize
。有时这不是
似乎工作。这是我提出的测试案例:
PS C:\> ls -Path C:\Windows\help -Include "*.chm" -Recurse|sort Directory|ft -GroupBy Directory -Auto
Directory: C:\Windows\help
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 23.05.2011 10:54 21544 NVWCPFI.chm
Directory: C:\Windows\help
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 23.05.2011 10:54 21879 NVWCPESM.chm
...
为什么输出不按目录分组?为什么有两个单独的条目 对于同一目录?如何对输出进行分组? (请忽略这个事实, 第一个命令的输出已经分组,我只使用此命令 一个测试用例。)
修改
正如我所指出的,我最初忘记了要排序的Directory
参数。 (输出仍然存在同样的问题。)
我正在使用Powershell 2.0
答案 0 :(得分:1)
为了在Format-Table
中对输出进行分组,首先需要对其进行排序。一个关于此问题的讨论的technet博客是here。虽然您有Sort-Object cmdlet,但您不选择要排序的值。 注意我在PowerShell 3.0上使用cmdlet得不到相同的输出
Get-ChildItem -Path C:\Windows\help -Include "*.chm" -Recurse| Sort-Object Directory | Format-Table -GroupBy Directory
输出确实会被排序,但我认为这不是你想要的。可能更期望的另一种方法是使用Select-Object
仅输出所需信息。
Get-ChildItem -Path C:\Windows\help -Include "*.chm" -Recurse| Sort-Object Directory | Select Name,Directory | Format-Table -AutoSize
您需要尝试使用Select-Object
的值来获得所需的输出。下一个示例将为您提供文件夹中chm的计数信息。根本不是Format-Table
相关的,而是有趣的。
Get-ChildItem -Path C:\Windows\help -Include "*.chm" -Recurse | Group-Object Directory
答案 1 :(得分:0)
如果工作,请尝试此操作:
...|sort directory |ft -GroupBy...