实时测试连接输出无间距

时间:2015-11-05 15:12:54

标签: powershell format output

Test-Connection PCNAME -count 6 | ft address, ipv4address, responsetime

我正在尝试使用上面的命令编写一个测试连接(ping)设备的命令,但是,当我运行它时,它会在每列之间输出巨大的间距。我总是可以在该命令的末尾添加-AutoSize,但是输出不会在屏幕上显示直到它完成,这会破坏命令的目的。有没有办法实时输出结果而没有间距?enter image description here

2 个答案:

答案 0 :(得分:3)

这对我有用。您只需要给format-table一些更合适的宽度:

try {
Test-Connection blah -count 6 -ErrorAction Stop | ft @{Name='address';Expr={$_.address};width=10},
                                        @{Name='ipv4address';Expr={$_.ipv4address};width=12},
                                        @{Name='responsetime';Expr={$_.responsetime};width=15} 

} catch [System.Net.NetworkInformation.PingException]  {
  write-output 'request timed out'
}

编辑:添加了try / catch以响应超时。

答案 1 :(得分:1)

没有办法做到这一点。正如您所发现的,AutoSize需要所有项目才能计算出列的大小,然后进行渲染。

因为您只是ping连接是关键表的格式化吗?

注意:您始终可以使用ForEach-Object自行格式化输出,使其看起来更像ping-esque:

Test-Connection PCNAME -count 6 | % {Write-Host "Reply from $($_.IPV4Address): bytes=$($_.BufferSize) time=$($_.ResponseTime) TTL=$($_.ResponseTimeToLive)"}
相关问题