1

这是我的问题:我创建了这个 .bat 脚本来 ping 我们环境中的主机名列表。这些名称都有类似的命名约定,因此设置为 type.site.countrycode(cc)。类型都是统一的 - tc1、tc2、tc3 等...站点和国家代码作为变量输入。现在,您输入站点和 cc,它会返回类型列表并显示它们是否可 ping。最近,我遇到了DNS问题,无法通过FQDN ping,但可以通过IP ping。因此,我不想为每个返回 IP,然后 ping,我希望能够 ping,然后对设置为 down 的所有内容运行 nslookup。我已经尝试了一切,从将“向下”框设置为变量并针对变量运行 nslookup,我尝试了一个嵌套循环来执行它,以及一个 findstr 来查找“

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)

)
4

1 回答 1

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 is up) || (nslookup %%i.%site%.%cc% >> nsbat.bat)

于 2013-11-02T18:16:05.770 回答