我仍然使用Windowsbatch file进行基本任务。 其中之一是检查我的互联网连接(pg.bat),只做ping www.google.com
大多数时候,我需要运行几次,直到成功(主机无法find错误)。 起初我以为ping -t会起作用,但事实并非如此。 当找不到主机时,它立即停止。
如何运行pg.bat直到ping成功? (即至less默认的4个ping工作之一)
不能在cmd批处理中打印variables
从程序执行batch file
如何遍历Windowsbatch file中的文件夹树/子树?
batch file中的string比较失效
batch file删除铬扩展
提高Windows的批处理脚本性能
Windows操作系统如何应用屏幕反映为x?
如何通过batch file知道命令是否成功执行?
Windowsbatch file:将string+数字variables设置为cmd-line参数的内容?
:repeat your-command || goto :repeat echo Success!
|| 如果第一个命令失败,将只运行第二个命令。 在这种情况下失败意味着一个非零的退出代码,所以它只能用于将%errorlevel%设置为0来获得成功的命令或者将非零值设置为失败的命令。
对于ping.exe的特定情况,退出代码在失败时不总是非零。 在这种情况下,可以使用find.exe来搜索ping的输出以获取成功消息,并根据需要设置错误级别。
:repeat (ping -n 1 www.google.com | find "TTL=") || goto :repeat echo Success!
(感谢Stephan对ping.exe退出代码的解释和解决方案)
只是循环命令,直到成功:
:Loop ping -n 1 www.google.com | find "TTL=" if not %errorlevel% equ 0 goto :Loop echo Connection established
你需要把你的命令放在一个循环中,如下所示:
:Loop ping -n 1 www.google.com | find "TTL=" if %errorlevel% neq 0 goto :Loop echo Connection established
介意上面的运营商neq。 这是命令行脚本中的“不等于”操作符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。