【问题标题】:Change Table column width to avoid truncated output更改表格列宽以避免截断输出
【发布时间】:2019-02-13 23:53:23
【问题描述】:

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

我知道如何将输出格式化为表格,但是,我正在从循环中输出数据,当我将每个输出流水线到 format-table 时,我得到了一个不错的列宽,但是 3 个空行 + 2 行每一行实际数据的标题。这很烦人,我在网上找不到任何关于如何在不使用 Format-Table 的情况下扩大列的内容。

有什么好的方法可以改变大小,或者在整个循环中使用Format-Table

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

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

之前:

名称 IPv4 地址 ---- ----------- 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

在我的循环中使用Format-Table 时:

名称 IPv4 地址 ---- ----------- PC12315274 192.168.12.129 名称 IPv4 地址 ---- ----------- PC62345678 192.168.14.161 名称 IPv4 地址 ---- ----------- PC12165667 192.168.11.123 名称 IPv4 地址 ---- ----------- NB12555662 192.168.17.125

以下是相关代码:

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

【问题讨论】:

  • 你能发布你的实际代码吗?如果没有看到它,我无法确定,但请尝试将-Autosize 参数附加到Format-Table - 根据the help,它专门用于帮助解决此类情况。另外,我通过“循环”假设您正在使用foreach(...) {...} - 如果您在管道上将其替换为Foreach-Object,则可以将结果通过管道传输到Format-Table 并避免您的第二个问题。但是,正如我所说,没有你的代码,很难说。
  • 完成,我在内循环的第一个管道之后添加了| Format-Table,我尝试将它放在外循环后面,但没有用
  • 当您在第一个循环前面放置 $var = 并将所有内容一起输出时,您甚至可以收集两个循环的输出。 ;-)
  • 我知道,这就是为什么我特别说我不想将所有内容一起输出,而是逐个输出:P
  • 您的代码对我来说很好用。我可以在不使用Format-Table 的情况下看到全名和 IP 地址。还有什么你没有包括的吗?顺便说一句,这看起来非常低效,因为它将执行大约 24000 次 AD 查找来检查给定范围内的每个地址。有什么方法可以抓取整个列表,然后在客户端上进行过滤?

标签: powershell


【解决方案1】:

我发现管道 Select-Object 输出到 Format-Table 可能会导致类似的问题。尝试在不先选择的情况下直接连接到 ft

我还建议只查询一次 AD,然后在 powershell 中过滤地址"

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

【讨论】:

  • 是的,这也有效,很高兴知道它可能与选择有关...是的,我知道只查询一次 AD 会更好,但是我希望它被排序并在很好的顺序,你知道 IP 地址排序是多么的痛苦……不过还是谢谢!
  • IP 排序有一个绝妙的技巧:$ips | Sort-Object -Property { [System.Version]$_ }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 2020-10-28
  • 2020-06-05
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
相关资源
最近更新 更多