.bat - 在主机名列表上完成ping和NSlookup,并报告结果

时间:2013-11-02 17:36:45

标签: batch-file ping nslookup

这是我的问题:我创建了这个.bat脚本来ping我们环境中的主机名列表。这些名称都具有相似的命名约定,因此它被设置为type.site.countrycode(cc)。这些类型都是统一的 - tc1,tc2,tc3等......站点和国家/地区代码作为变量输入。现在,您键入站点和cc,它返回类型列表并显示它们是否可ping。最近,我遇到了DNS问题,无法通过FQDN ping,但可以ping IP。因此,不是为每个返回IP,而是然后ping,我希望能够ping,然后在设置为down的所有内容上运行nslookup。我已经尝试过将“down”框设置为变量并对变量运行nslookup,我尝试了嵌套循环来执行此操作,以及找到“向下”框并将其设置为一个变量,以及许多其他选项,我正在想法。我将发布只是ping方框的WORKING代码,并希望你建议的任何方法都能指向正确的方向。在此先感谢!!!

SET "site=%1"
SET "cc=%2"

if "%site%" equ "" (
   set /P "site=Site Number: "
   set /P "cc=Country Code (US if left blank): "
)
if "%cc%"=="" set "cc=us"
IF ERRORLEVEL 1 GOTO top
:startloop
set #=%site%
:subloop
set site=s0%site%
:reping
cls
echo Checking %site%.%cc%
echo.

for %%i in (tc1 tc2 tc3) do (
ping -n 1 -w 2000 %%i.%site%.%cc% >nul && (echo %%i is up) || (echo %%i is down)

)

1 个答案:

答案 0 :(得分:0)

也许就像......

    for %%i in (tc1 tc2 tc3) do (
    ping -n 1 -w 2000 %%i.%site%.%cc% >nul && (echo %%i is up) || (nslookup %%i.%site%.%cc%)

    )

您还可以将nslookup命令传递给另一个批处理文件,然后再运行它...         ping -n 1 -w 2000 %% i。%site%。%cc%> nul&& (echo %% i up)|| (nslookup %% i。%site%。%cc%>> nsbat.bat)