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

批处理中实现服务器名与IP关联及ping结果输出需求

批处理实现服务器名映射IP并ping统计丢包率

实现思路

用set命令直接建立服务器名与IP的键值对关联,通过延迟变量扩展根据输入的服务器名动态获取对应IP,再执行ping命令并提取丢包率信息输出。

完整批处理脚本

@echo off
setlocal enabledelayedexpansion

:: 定义服务器名与IP的映射列表
set "server1=10.40.90.1"
set "server2=10.20.10.1"
set "server3=192.168.1.100"

:: 检查是否输入了服务器名
if "%~1"=="" (
    echo 请输入要ping的服务器名,示例:%~nx0 server1
    pause
    exit /b 1
)

:: 验证输入的服务器名是否存在映射
if not defined %1 (
    echo 错误:未找到服务器名 "%1" 的IP映射
    pause
    exit /b 1
)

:: 获取对应服务器的IP
set "target_ip=!%1!"

:: 执行ping命令并提取丢包率
for /f "tokens=7 delims=%% " %%a in ('ping -n 4 !target_ip! ^| findstr /i "丢失"') do (
    set "loss_rate=%%a"
)

:: 输出结果
echo 服务器名:%1
echo 数据包丢失率:%loss_rate%

endlocal
pause

关键部分说明

  1. 服务器-IP映射定义:用set "服务器名=IP地址"的格式直接绑定,后续可随时新增或修改条目。
  2. 延迟变量扩展:启用enabledelayedexpansion后,用!%1!的格式,能根据用户输入的服务器名(%1是第一个命令行参数)动态取出对应的IP值。
  3. 丢包率提取:ping -n 4指定发送4个数据包,通过findstr筛选包含“丢失”的行,再用for命令提取该行的第7个分隔符(以%和空格为分隔),就是丢包率的数值。
  4. 输入校验:检查是否传入服务器名,以及该服务器名是否存在映射,避免无效输入报错。

使用方法

  1. 编辑脚本中的服务器-IP映射列表,添加你需要的条目。
  2. 保存为PingServer.bat。
  3. 在命令行或双击运行时,加上服务器名参数,比如:PingServer.bat server1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:02:10