我仍然使用
Windows批处理文件来执行基本任务.其中一个是检查我的互联网连接(pg.bat),它只执行ping www.google.com
大多数时候,我需要运行它几次,直到它成功(主机找不到错误).起初我认为ping -t会起作用,但事实并非如此.找不到主机时,它会立即停止.
如何在ping成功之前运行pg.bat? (即至少有一个默认的4个ping工作)
通常,您可以在批处理文件中使用label / goto语法.
:repeat your-command || goto :repeat echo Success!
||如果第一个命令失败,它将只运行第二个命令.在这种情况下失败意味着非零退出代码,因此它仅适用于将%errorlevel%设置为0表示成功或非零表示失败的命令.
对于ping.exe的特定情况,退出代码在失败时并不总是非零.在这种情况下,您可以使用find.exe搜索ping的输出以获取成功消息,并设置我们需要的errorlevel.
:repeat (ping -n 1 www.google.com | find "TTL=") || goto :repeat echo Success!