我使用了许多 cmdlet,它们默认以 4-5 列的表格形式显示数据。其中一些数据经常大于默认列宽并被截断,但这没关系,因为每个值的开头都是最有用的部分(例如,当尝试区分来自同一域的电子邮件地址时)。
随着 Windows 10 的升级,默认列宽似乎有所增加。这导致我的列非常宽,显示的字符比我实际需要的要多,但不幸的是,最右边的列由于被“推”出了屏幕而无法输出。
作为一个直观的例子,在 Windows 8 中我有类似这样的情况:
Column 1 Column 2 Column 3 Column 4
-------- -------- -------- --------
Data Lorem ip... Lorem ip... Important data
现在在 Windows 10 中我得到了这个:
Column 1 Column 2 Column 3
-------- -------- --------
Data Lorem ipsum dolor sit amet consectetur ad... Lorem ipsum dolor sit amet...
中间列的宽度可达 64 个字符,从而阻止显示后面的列。简单地重新排列列没有帮助,因为我仍然需要所有列的至少前几个字符。
有没有办法强制 format-table 或其他显示 cmdlet 在设置值(例如 20 个字符)后截断列?最好是缺少某种控制数据显示方式的参数。
答案1
因为Format-Table
你只有几个选择。-AutoSize
会使它看起来更漂亮,而不是那么分散,如果你-Wrap
也把它扔在那里,它会有很大的帮助。
另一个选择是制作自定义表格。示例如下
$a = @{Expression={$_.Name};Label="Process Name";width=25}, `
@{Expression={$_.ID};Label="Process ID";width=15}, `
@{Expression={$_.MainWindowTitle};Label="Window Title";width=40}
Get-Process | Format-Table $a