如何使用PowerShell命令增加txt文件中列之间的间距?

of1yzvn4  于 2023-06-06  发布在  Shell
关注(0)|答案(1)|浏览(221)

我想增加我的文本文件中的列之间的间距,因为列之间太近了,不容易读取数据。
我的文本文件现在的样子:

这是我的powershell代码:

$output = Get-ADUser -Filter "SamAccountName -eq 'jared.h'" -Properties whenChanged,DistinguishedName | Select SamAccountName,Enabled,whenChanged,DistinguishedName

$output | Format-Table * | Out-File -FilePath C:\output.txt -Width 5000

我需要做什么修改才能得到这样的输出?

我无法使用Format-Table -AutoSize,因为我需要显示文本文件中的所有13列。
我还尝试在format-table中添加属性width:

$output | Format-Table -Property @{ e='SamAccountName,Enabled,whenChanged'; width = 1000 } | Out-File -FilePath C:\output.txt -Width 5000 Format-Table

但它删除了所有数据,并删除了标题之间的任何间距,并用逗号替换它们:

SamAccountName,Enabled,whenChanged 
----------------------------------
zsohkypk

zsohkypk1#

您将需要使用expression定义每一列,并设置相关的width,其中允许使用属性名称(string)而不是表达式(请参阅:GitHub issue #14676

…  |Format-Table @{e='SamAccountName';width=30}, @{e='Enabled';width=20}

参见计算属性/format-list
关于您的评论:

  • 谢谢。但是对于这个命令,我必须自定义每列的宽度,然后尝试许多不同的宽度,以尝试获得每列之间相同的间距/距离。有没有更简单的方法来使列之间的间距相等 *

恐怕Format-Table cmdlet不如WinFormsWindows Presentation Foundation复杂,并且没有类似-stretch参数的东西。此外,很难确定列中的数据是如何划分的,特别是在活动管道中,以及数据甚至可能超过可用列宽度的位置,如您自己的示例中的DistinguishedName列。
不管怎样,我看到了两个可能的解决方法:

利用怪癖

… |Format-Table @{e='SamAccountName'; w=15},Enabled,whenChanged,DistinguishedName -Wrap |
    out-String -Width 90

SamAccountName                   Enabled whenChanged              DistinguishedName
--------------                   ------- -----------              -----------------
iRon7                              False 5/10/2023 9:05:23 AM     CN=iRon7,OU=Test,OU=User
                                                                  s,DC=Consoto,DC=com

缺点:它不会改变右对齐列和左对齐列之间的间距(如EnabledwhenChanged之间)。

使用垫片

创建一个标题名称为“白色”的空列:

$Spacer = @{n=' '; e=' '}

… |Format-Table SamAccountName,$Spacer,Enabled,$Spacer,whenChanged,$Spacer,DistinguishedName

SamAccountName   Enabled   whenChanged            DistinguishedName
-------------- - ------- - -----------          - -----------------
iRon7              False   5/10/2023 9:05:23 AM   CN=iRon7,OU=Test,OU=Users,DC=Consoto,DC=com

缺点:这会在标尺上放置额外的破折号(-)。

相关问题