You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell新手如何修改批量ping脚本以实现自定义输出格式

修改后的完整脚本

# 先定义你的IP列表,示例如下
$Iplist = @("IP1", "IP2", "IP3")
$group = @()
foreach ($ip in $Iplist) {
    # 用有序哈希表保证属性顺序和输出顺序一致
    $status = [ordered]@{
        "Servidor" = $ip
        "Fecha" = (Get-Date -Format "dd/MM/yyyy HH:mm")
        "AverageResponseTime" = $null
        "MinResponseTime" = $null
        "MaxResponseTime" = $null
        "Estado" = $null
    }
    $pings = Test-Connection $ip -ErrorAction SilentlyContinue
    if ($pings) {
        $responseTimes = $pings.ResponseTime
        $status["AverageResponseTime"] = ($responseTimes | Measure-Object -Average).Average
        $status["MinResponseTime"] = ($responseTimes | Measure-Object -Minimum).Minimum.ToString() + "ms"
        $status["MaxResponseTime"] = ($responseTimes | Measure-Object -Maximum).Maximum.ToString() + "ms"
        $status["Estado"] = "OK"
    }
    else {
        $status["Estado"] = "Down"
        $status["AverageResponseTime"] = "N/A"
        $status["MinResponseTime"] = "N/A"
        $status["MaxResponseTime"] = "N/A"
    }
    $serverStatus = New-Object -TypeName PSObject -Property $status
    $group += $serverStatus
}
# 按指定列顺序输出表格,自动对齐
$group | Format-Table -AutoSize

调整说明

  • 改用有序哈希表声明状态字段,避免普通哈希表的属性顺序混乱问题,输出列的顺序和你期望的完全匹配
  • 新增了最小、最大响应时间的统计逻辑,拼接ms单位符合目标格式要求
  • 增加了-ErrorAction SilentlyContinue参数,ping不通时不会抛出冗余报错
  • 最后输出时-AutoSize参数会自动调整列宽实现对齐效果

如果需要导出成文本文件保留格式,可以在最后补充一行代码:

$group | Format-Table -AutoSize | Out-File -FilePath "Ping检测结果.txt" -Encoding utf8

内容的提问来源于stack exchange,提问作者Gianluca Grosso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:45:03