Bur*_*ard 11 windows batch-file
我仍然使用Windows批处理文件来执行基本任务.其中一个是检查我的互联网连接(pg.bat),它只做一个ping www.google.com
大多数时候,我需要运行它几次,直到它成功(主机找不到错误).起初我认为一个ping -t会起作用,但事实并非如此.找不到主机时,它会立即停止.
如何在ping成功之前运行pg.bat?(即至少有一个默认的4个ping工作)
Rya*_*ose 12
通常,您可以在批处理文件中使用label/goto语法.
:repeat
your-command || goto :repeat
echo Success!
Run Code Online (Sandbox Code Playgroud)
||如果第一个命令失败,则只会运行第二个命令.在这种情况下失败意味着非零退出代码,因此它仅适用于设置%errorlevel%为0表示成功或非零表示失败的命令.
对于特定情况ping.exe,退出代码在失败时并不总是非零.在这种情况下,您可以使用find.exe搜索ping成功消息的输出并设置我们需要的错误级别.
:repeat
(ping -n 1 www.google.com | find "TTL=") || goto :repeat
echo Success!
Run Code Online (Sandbox Code Playgroud)
(感谢Stephan关于ping.exe退出代码的解释和解决方案)
只需循环命令,直到成功:
:Loop
ping -n 1 www.google.com | find "TTL="
if not %errorlevel% equ 0 goto :Loop
echo Connection established
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7732 次 |
| 最近记录: |