Powershell 更改表列宽以避免截断输出

Powershell 更改表列宽以避免截断输出,powershell,Powershell,我的控制台输出太小-我得到的输出IP地址被截断 我知道如何将输出格式化为表,但是,我正在从循环输出数据,当我将每个输出管道化到格式化表时,我得到了一个很好的列宽,但是每一行实际数据的标题有3个空行+2行。这很烦人,我在网上找不到任何关于如何在不使用格式表的情况下加宽列的内容 通常更改大小或在整个循环中使用格式表的好方法是什么? 我不想将每个输出附加到变量或文件中,然后将其打印到控制台-它需要在控制台中逐个循环显示 我的意思是,如果你想知道: 之前: Name IPv4Addre

我的控制台输出太小-我得到的输出IP地址被截断

我知道如何将输出格式化为表,但是,我正在从循环输出数据,当我将每个输出管道化到
格式化表
时,我得到了一个很好的列宽,但是每一行实际数据的标题有3个空行+2行。这很烦人,我在网上找不到任何关于如何在不使用格式表的情况下加宽列的内容

通常更改大小或在整个循环中使用
格式表的好方法是什么?

我不想将每个输出附加到变量或文件中,然后将其打印到控制台-它需要在控制台中逐个循环显示

我的意思是,如果你想知道:

之前:

Name IPv4Address ---- ----------- PC12315274 192.168.10... PC17245658 192.168.10... NB12346679 192.168.12.38 PC12245614 192.168.10... SV12347348 192.168.10... PC62345678 192.168.10... SV12165667 192.168.17.28 以下是相关代码:

foreach ( $subnet in (7..100)) {
    foreach ( $client in (1..253)) {
        get-adcomputer -filter "IPv4Address -eq '192.168.$subnet.$client'" -Properties * `
            | select Name, IPv4Address
    }
}

我发现管道
选择对象
输出到
格式表
会导致类似问题。尝试直接将管道连接到ft,无需先选择

我还建议只查询一次广告,然后在powershell中过滤地址”


我发现管道
选择对象
输出到
格式表
可能会导致类似问题。请尝试直接管道到ft,而无需先选择

我还建议只查询一次广告,然后在powershell中过滤地址”


你能发布你的实际代码吗?在没有看到它的情况下,我无法确定,但请尝试将
-Autosize
参数附加到
格式表
-它是专门设计用于帮助处理此类情况的,如所示。另外,我通过“循环”假设您正在使用
foreach(…){…}
——如果您在管道上用
foreach对象
替换它,那么您可以将结果通过管道传输到
格式表
,从而避免第二个问题。但是,正如我所说,如果没有代码,很难说。完成后,我在内部循环的第一个管道之后添加了
|Format Table
,我尝试将其放在外部循环之后,但这不起作用。当您将
$var=
放在第一个循环之前并将所有内容一起输出时,您甚至可以收集两个循环的输出。;-)我知道,这就是为什么我特别说我不想把所有东西都一起输出,而是一块一块地输出:PYour代码对我来说很好。我可以看到全名和IP地址,无需使用
格式表
。还有什么你没有包括在内的吗?顺便说一句,这看起来效率极低,因为它将执行大约24000次AD查找来检查给定范围内的每个地址。有没有什么方法可以让你抓取整个列表,然后在客户端进行过滤?你能发布你的实际代码吗?在没有看到它的情况下,我无法确定,但请尝试将
-Autosize
参数附加到
格式表
-它是专门设计用于帮助处理此类情况的,如所示。另外,我通过“循环”假设您正在使用
foreach(…){…}
——如果您在管道上用
foreach对象
替换它,那么您可以将结果通过管道传输到
格式表
,从而避免第二个问题。但是,正如我所说,如果没有代码,很难说。完成后,我在内部循环的第一个管道之后添加了
|Format Table
,我尝试将其放在外部循环之后,但这不起作用。当您将
$var=
放在第一个循环之前并将所有内容一起输出时,您甚至可以收集两个循环的输出。;-)我知道,这就是为什么我特别说我不想把所有东西都一起输出,而是一块一块地输出:PYour代码对我来说很好。我可以看到全名和IP地址,无需使用
格式表
。还有什么你没有包括在内的吗?顺便说一句,这看起来效率极低,因为它将执行大约24000次AD查找来检查给定范围内的每个地址。你有没有办法抓取整个列表,然后在客户端进行过滤?是的,这也很有效,很高兴知道这可能与选择。。。是的,我知道只查询一次广告会表现得更好,但我希望它能被排序,并以一个很好的顺序,你知道排序IP地址有多痛苦。。。不过还是要谢谢你!对IP进行排序有一个很好的技巧:
$IPs | Sort Object-Property{[System.Version]$\u}
是的,这也很有效,很高兴知道它可能与选择。。。是的,我知道只查询一次广告会表现得更好,但我希望它能被排序,并以一个很好的顺序,你知道排序IP地址有多痛苦。。。不过还是要谢谢你!排序IP有一个很好的技巧:
$IPs |排序对象-属性{[System.Version]$}
foreach ( $subnet in (7..100)) {
    foreach ( $client in (1..253)) {
        get-adcomputer -filter "IPv4Address -eq '192.168.$subnet.$client'" -Properties * `
            | select Name, IPv4Address
    }
}
Get-ADComputer -filter * -Properties ipv4address | 
where {
    $_.ipv4address -ne $null -and 
    $_.ipv4address.split(".")[2] -in 7..100 -and 
    $_.ipv4address.split(".")[3] -in 1..253} | 
ft name,ipv4address -autosize