Batch file 当连接失败时,如何中断循环?

Batch file 当连接失败时,如何中断循环?,batch-file,ping,Batch File,Ping,我正在做一个ping批处理程序。 我想学习的是,当连接断开时,如何跳过循环? 例如: @echo off :1 ping www.stackoverflow.com (I guess) if errorlevel 1 set errorlev=1 If errorlevel 1 goto 2 goto 1 :2 Echo ping failed! Title ping failed! color c 你可以试试这个: :back ping www.stackoverflow.com >n

我正在做一个ping批处理程序。 我想学习的是,当连接断开时,如何跳过循环? 例如:

@echo off
:1
ping www.stackoverflow.com
(I guess) if errorlevel 1 set errorlev=1
If errorlevel 1 goto 2
goto 1
:2
Echo ping failed!
Title ping failed!
color c
你可以试试这个:

:back
ping www.stackoverflow.com >nul && goto:back
Echo ping failed!

所以你想永远ping直到ping失败,然后停止

@echo off
:1
ping -n 1 www.stackoverflow.com | find "Reply from">nul2>nul && goto :1
echo ping failed!
title ping failed!
color c
注意:我使用管道查找而不是检查ERRORLEVEL,因为某些Windows版本与某些故障条件下的ERRORLEVEL设置不一致。请参见下面的示例

C:\Users\Me>ping -n 1 192.168.1.2

Pinging 192.168.1.2 with 32 bytes of data:
Reply from 192.168.1.102: Destination host unreachable.

Ping statistics for 192.168.1.2:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

C:\Users\Me>echo %errorlevel%
0

bash中有一个break命令