我正在尝试以漂亮的缩进形式显示 ping 命令输出......但是,似乎无法正确格式化它......
我想要这样的输出:
Result:
Pinging google.com [216.58.208.110] with 32 bytes of data:
Reply from 216.58.208.110: bytes=32 time=223ms TTL=61
Reply from 216.58.208.110: bytes=32 time=129ms TTL=61
Ping statistics for 216.58.208.110:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 129ms, Maximum = 223ms, Average = 176ms
但是 Powershell 似乎不想让我在不弄乱输出的情况下做到这一点
这是我正在使用的代码块
$ping = & { Invoke-Expression "ping -n 2 google.com" } 2>&1 | Out-String
Write-Host ""
Write-Host "$ping" -ForegroundColor Green
Write-Host ""
哪种作品,但没有缩进....
当我尝试不同的变体试图获得缩进时,他们都失败了......
$ping = & { Invoke-Expression "ping -n 2 google.com" } 2>&1 | Out-String
Write-Host ""
Write-Host " $ping" -ForegroundColor Green
Write-Host ""
结果:这种工作,但只有第一行缩进......输出的其余部分没有......
$ping = & { Invoke-Expression "ping -n 2 google.com" } 2>&1 | Format-Table
Write-Host ""
Write-Host " $ping" -ForegroundColor Green
Write-Host ""
结果:Powershell 吐出一个 Windows 错误,并且该表从未出现过......
$ping = & { Invoke-Expression "ping -n 2 google.com" } 2>&1
foreach ($line in $ping ) {
Write-Host ""
Write-Host " $line" -ForegroundColor Green
Write-Host ""
}
结果:输入的前 3 行左对齐,其余行按预期缩进...
$ping = & { Invoke-Expression "ping -n 2 google.com" } 2>&1
$indent = $ping.PadLeft(50)
Write-Host ""
Write-Host " $indent" -ForegroundColor Green
Write-Host ""
结果:就像我在word中点击了右对齐按钮并且输出被搞砸了......
$ping = & { Invoke-Expression "ping -n 2 google.com" } 2>&1
foreach ($line in $ping ) {
Write-Host ""
Write-Host "`t $line" -ForegroundColor Green
Write-Host ""
}
结果:选项卡从未出现,输出左对齐,没有缩进...
有人可以指出我的方式的错误...过去几天一直让我发疯...
提前致谢!
X