批处理实现ping内网某指定ip

请教大家一个问题。

我想ping内网内指定的某三个ip(比如192.168.10.1,192.168.10.2,192.168.10.3),一旦有一个能通,发出声音提醒,确认后退出CMD。若没有ping通,延时3分钟再次ping.这样循环下去。
麻烦大家帮忙写下。谢谢!
PS.因为打算长期放在后台执行,希望尽可能少占用系统资源。

@Echo Off
:loop
Ping -n 2 192.168.10.1 2>nul 1>nul&&Goto End
Ping -n 2 192.168.10.2 2>nul 1>nul&&Goto End
Ping -n 2 192.168.10.3 2>nul 1>nul&&Goto End
Ping -n 180 127.1>nul
Goto loop
:End

Cls
Echo Ping通
Pause

发出声音可以选择播放一首音乐.我使用的是cmd中的蜂鸣,这个可以在cmd中按Ctrl+G键回车听到.

追问

追答@Echo Off
:loop
Ping -n 2 192.168.10.1 2>nul 1>nul&&Call :End 192.168.10.1
Ping -n 2 192.168.10.2 2>nul 1>nul&&Call :End 192.168.10.2
Ping -n 2 192.168.10.3 2>nul 1>nul&&Call :End 192.168.10.3
Ping -n 180 127.1>nul
Goto loop
:End

Cls
Echo Ping通 %1
Pause

    本来可以写的更简洁的但是也没太必要了.毕竟效率是一样的只是好看点.

    Ping -w 1 192.168.10.1 表示超时为1毫秒. "-w 100" 超时为100毫秒.如果没有指定-n参数默认会Ping 4次,每次大概1秒钟左右,所以就会有你所说的3-4秒的延时.

追问

追答Ping -n 1 -w 1000 192.168.10.1

这才是超时1秒.

追问

追答

可以,但是100毫秒感觉有点短,虽然是内网.但还是建议设置长一点.现在的电脑对付这种就是小菜一碟.

温馨提示:答案为网友推荐,仅供参考
相似回答