2013-11-02 1 views
1

다음은 나의 문제점입니다.이 .bat 스크립트를 작성하여이 환경에서 호스트 이름 목록을 핑 (ping)하십시오. 이름은 모두 비슷한 이름 지정 규칙을 가지고 있으므로 type.site.countrycode (cc)로 설정됩니다. 유형은 모두 균일합니다 - tc1, tc2, tc3 등 ... 사이트 및 국가 코드는 변수로 입력됩니다. 지금은 사이트와 참조를 입력하고 유형 목록을 표시하고 ping 가능 여부를 표시합니다. 최근에 DNS 관련 문제가 발생하여 FQDN으로 핑할 수는 없지만 IP로 핑할 수는 있습니다. 따라서 각각의 IP를 반환하는 대신 ping을 수행 한 후 핑 (ping)을 할 수 있기를 원하고 다운 된 것으로 설정된 모든 것에 nslookup을 실행하고 싶습니다. "down"상자를 변수로 설정하고 변수에 대해 nslookup을 실행하는 등 모든 작업을 시도했습니다. 중첩 된 루프를 시도해 보았습니다. findstr은 "down"상자를 찾아서 설정했습니다. 변수 및 기타 많은 옵션을 제공합니다. 그냥 상자에 ping을하는 작업 코드를 게시하고 올바른 방법으로 나에게 알려줄 수있는 방법을 알려주기를 바랍니다. 미리 감사드립니다 !!! 아마도 뭔가 같은.bat - 호스트 이름 목록에서 ping 및 NSlookup을 완료하고 결과를보고하십시오.

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) 

) 

답변

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%) 

    ) 

?

당신은 -n 1 -w 2000 핑 ... 또 다른 배치 파일에 nslookup 명령을 전달하고 나중에 그것을 실행할 수 %% 전. % 사이트 %를. % CC %> NUL & & (에코 %% 난을 올라간다) || (nslookup %% i. % site %. % cc % >> nsbat.bat)

관련 문제