Windows 10下Bat脚本持续执行ping 8.8.8.8问题排查
解决Windows Bat脚本中Ping持续执行的问题
嗨,这问题我熟!你遇到的情况是因为Windows系统自带的ping命令默认是持续发送ICMP请求的,不会自动终止——不像Linux/macOS的ping默认只发4个包就停。所以你的脚本卡在第一条ping 8.8.8.8这里,根本没机会执行后面的命令。
解决办法:给Ping命令加参数控制执行次数
只需要给每个ping命令加上-n参数,指定要发送的数据包数量,就能让它执行完自动结束,继续往下走。比如:
修改后的完整Bat脚本
# 发送4次请求到8.8.8.8,完成后自动退出 ping -n 4 8.8.8.8 # 同理处理4.4.4.4 ping -n 4 4.4.4.4 # 保持窗口不关闭 cmd
可选优化:增加超时控制和提示信息
如果想让每个ping请求的超时时间更短,或者让输出更清晰,还可以加上-w参数(指定超时毫秒数)和提示文字:
echo 正在测试连接8.8.8.8... ping -n 4 -w 1000 8.8.8.8 echo. # 输出空行分隔结果 echo 正在测试连接4.4.4.4... ping -n 4 -w 1000 4.4.4.4 cmd
这样修改后,脚本就会依次执行两个ping命令,完成后停留在命令窗口啦。
内容的提问来源于stack exchange,提问作者HelloCW




