如何在 Windows 10 上的 powershell 中缩小列的宽度?

Tro*_*yen 3 powershell windows-10

我使用许多 cmdlet,默认在 4-5 列的表格中显示数据。其中一些数据经常大于默认列宽并被截断,但这没关系,因为每个值的开头是最有用的部分(例如,当尝试区分来自同一域的所有电子邮件地址时)。

随着升级到Windows 10,默认的列宽似乎有所增加。这给我留下了超宽的列,显示的字符比我严格需要的要多,但也有一个不幸的副作用,即最右边的列不会输出,因为它们被“推”出屏幕。

作为一个直观的例子,在 Windows 8 中我有这样的东西:

Column 1    Column 2      Column 3      Column 4
--------    --------      --------      --------
Data        Lorem ip...   Lorem ip...   Important data
Run Code Online (Sandbox Code Playgroud)

现在在 Windows 10 中我得到了这个:

Column 1    Column 2                                     Column 3
--------    --------                                     --------    
Data        Lorem ipsum dolor sit amet consectetur ad... Lorem ipsum dolor sit amet...
Run Code Online (Sandbox Code Playgroud)

其中中间列的宽度可以为 64 个字符,从而防止显示后面的列。简单地对列进行重新排序并没有帮助,因为我仍然需要至少所有列中的前几个字符。

有没有办法可以强制 format-table 或其他一些显示 cmdlet 在设定值(例如 20 个字符)后截断列?最好是我缺少某种控制数据显示方式的参数。

Unf*_*nut 5

因为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
Run Code Online (Sandbox Code Playgroud)