Test-Connection PCNAME -count 6 | ft address, ipv4address, responsetime
我正在尝试使用上面的命令编写一个测试连接(ping)设备的命令,但是,当我运行它时,它会在每列之间输出巨大的间距。我总是可以在该命令的末尾添加-AutoSize
,但是输出不会在屏幕上显示直到它完成,这会破坏命令的目的。有没有办法实时输出结果而没有间距?
答案 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)"}