仅使用Batch ping服务器名称列表来获取IP地址

时间:2015-06-22 14:13:43

标签: batch-file ping findstr

我有一个包含几百个服务器名称列表的文本文件

Server1

Server2

Server3

Server4

依旧......

我想运行一个批处理文件,它将获取此文件,ping所有文件,如果找到则只返回IP地址,或者" DOWN"如果无法访问或未找到。我希望输出进入output.txt,输出只需要是IP地址或" DOWN"。

示例输出:

176.28.29.100

DOWN

176.28.29.105

176.28.29.110

编辑:我是批处理的新手,到目前为止我已经完成了这个:将服务器名称转换为excel,在另一列中获取服务器名称的数量

ping -n 1 servername | findstr "Pinging host" >> out.txt

...

我得到的输出格式为

Ping request could not find host Server1. Please check the name and try again.

Pinging Sever2 [176.28.29.105] with 32 bytes of data:

Reply from 176.28.29.110: Destination host unreachable.

想要获得IP

2 个答案:

答案 0 :(得分:0)

逐行处理文件,使用for /f

@echo off
setlocal enabledelayedexpansion

for /f %%i in (servers.txt) do (
  set p=DOWN
  set r=no response
  for /f "tokens=2 delims=[]" %%p in ('ping -n 1 -w 1 %%i^|find "["' ) do set p=%%p
  ping -n 1 -w 2000 %%i|find "TTL" >nul && set r=running
  echo %%i  is !p! !r!
)

(根据您的需要调整echo行)

答案 1 :(得分:0)

您可以尝试这样:

$('#table_id').dataTable().fnAddData( [
    [desc,recl, inv, comp, tsbs]
]);