我们在使用 Format-Table 去显示输出信息的时候, 通常会发现如果某个属性字段比较长, 则无法正常全部显示, 如下.
- PS> Get-Process -Name powershell | Format-Table -Property Company,Name,Id,Path -AutoSize
- Company Name Id Path
- ------- ---- -- ----
- Microsoft Corporation powershell 2836 C:\Program Files\Windows PowerShell\v1...
这里面涉及到一个很重要的细节是, Format-Table 命令假定属性距离属性列表的开头越近, 则该属性越重要. 因此, 它会尝试完整显示离列表开头最近的那些属性. 如果 Format-Table 命令无法显示所有属性, 它将从显示中删除某些列, 并发出警告. 如果你使名称变成列表中的最后一个属性, 便可以看到这一行为:
- PS> Get-Process -Name powershell | Format-Table -Property Company,Path,Id,Name -AutoSize
- WARNING: column "Name" does not fit into the display and was removed.
- Company Path I
- d
- ------- ---- -
- Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\powershell.exe 6
你还可以通过使用 Wrap 参数让较长的 Format-Table 数据在其显示列中自动换行. 仅使用 Wrap 参数不一定会实现所需的操作, 因为如果你不同时指定 AutoSize, 它会使用默认设置:
- PS> Get-Process -Name powershell | Format-Table -Wrap -Property Name,Id,Company,Path
- Name Id Company Path
- ---- -- ------- ----
- powershell 2836 Microsoft Corporati C:\Program Files\Wi
- on ndows PowerShell\v1.0\powershell.exe
使用 Wrap 参数的一个优点是基本不会减慢进程速度. 如果你对大型目录系统执行递归文件列表, 那么如果你使用 AutoSize, 可能得耗用大量时间和内存, 才能显示第一批输出项.
如果你并不关心系统负载, 那么结合使用 AutoSize 和 Wrap 参数则会获得良好的效果.
- PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,Id,Company,Path
- Name Id Company Path
- ---- -- ------- ----
- powershell 2836 Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0
- powershell.exe
如果你先指定最宽的列, 则某些列可能无法显示, 因此最安全的做法是先指定最小的数据元素. 在下面的示例中, 我们首先指定特别宽的路径元素, 甚至使用自动换行, 但仍丢失了最后的名称列:
- PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Path,Id,Company,Name
- WARNING: column "Name" does not fit into the display and was removed.
- Path Id Company
- ---- -- -------
- C:\Program Files\Windows PowerShell\v1.0\powershell.exe 2836 Microsoft Corporation
来源: http://www.bubuko.com/infodetail-3039631.html