如果ping成功则执行CMD

时间:2018-04-04 08:00:20

标签: windows cmd

我的情况是我无法理解,我正在尝试做一个批处理文件,他循环200次,并在每个循环中他ping一个主机,如果ping成功他执行命令。这是我得到的:

    @echo off
for /L %%N IN (1, 1, 200) DO (
    ping -n 1 192.1.22.%%N
    if not ERRORLEVEL 1 (
        set pingresult=true
        goto done
    )
)

set pingresult=false
:done
if %pingresult% == true (
 echo Pikachu


) else (
  echo "Offline!"
)

它没有用。

1 个答案:

答案 0 :(得分:1)

感谢aschipfl,我发现了答案!

你必须在| find "TTL=" >nul命令之后使用ping,因为这样一来,如果ping成功,他会转移一个TTL,而| find "TTL=" >nul将grep它进行验证。这是我得到解决方案的网站上的例子。

ping -n 1 192.168.1.1 | find "TTL=" >nul
if errorlevel 1 (
    echo host not reachable
) else (
    echo host reachable
)