我希望将一些功能添加到我一直在编写的批处理文件中; 基本上发生的事情是我使用 openvpn 拨号建立 VPN 连接,然后继续安装网络驱动器以及许多其他事情,我想要做的是:
- 通过 OpenVPN 拨号连接(我工作正常)
- Ping VPN 另一端的主机,在可以访问该主机之前不要继续通过批处理文件。
目前我一直在使用 20 秒的 sleep 命令,该命令有效,但不是一种非常干净或智能的处理方式;我想我需要某种循环来尝试无限地 ping 主机,直到它可以访问,然后再继续批处理文件。任何帮助将不胜感激。
最佳答案
来自 stackoverflow 上的其他线程...归功于 paxdiablo(找到原始帖子 here)
@setlocal enableextensions enabledelayedexpansion
@echo off
set ipaddr=%1
:loop
set state=down
for /f "tokens=5,7" %%a in ('ping -n 1 !ipaddr!') do (
if "x%%a"=="xReceived" if "x%%b"=="x1," set state=up
)
echo.Link is !state!
ping -n 6 127.0.0.1 >nul: 2>nul:
goto :loop
endlocal
这会给你足够的弹药来解决你的问题
关于loops - 暂停批处理文件直到可以访问主机(使用 ping)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637892/