[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理怎样实现VPN线路守护、监测、自动换线?

  1. rem VPNIP.TXT里是VPN线路的IP列表,每个IP一行
  2. rasdial VPN name pass  /phone:1%%  rem VPNIP.TXT列表里的第一个IP地址
  3. rem vpn拨号成功后,每隔一分钟 ping google.com
  4. :ping
  5. timeout 60 >nul
  6. ping -n 10 -l 1 google.com >lost.txt
  7. timeout 60>nul
  8. ping -n 10 -l 1 google.com >>lost.txt
  9. rem 下面的不会写 :连续2次ping的掉包率超过20%或者平均延时超过600
  10. rasdial /DISCONNECT rem 挂断VPN
复制代码
然后 rasdial VPN name pass  /phone:2%%  rem VPNIP.TXT列表里的下一个IP地址 ,把TXT里的IP设成 2%% 不会啊
IF %ERRORLEVEL% EQU 0 goto ping  rem 拨号成功 继续测试 直到线路不好 再次挂断 播VPNIP.TXT 里的第三行地址
IF ERRORLEVEL EQU 1 REM :拨号失败 继续拨号下一行的IP,直到成功后 goto ping 继续监测


初学批处理,请大家帮助,谢谢

求助:怎么提取ping命令输出的平均延迟和丢包率
还有就是怎么把VPNIP.TXT里的一行一行的ip地址设为变量提供给批处理?

TOP

回复 2# bobo
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (VPNIP.TXT) do (
  4.     set ip=%%a
  5.     echo !ip!
  6. )
  7. pause
复制代码

TOP

谢谢awk老师的指导,那么把ping命令结果的平均延迟和丢包率传给 IF命令比较要怎么做?
如果ping的结果延迟过高(超过600)或者丢包率过高(超过20%)
那么就要播下一条IP,
还有就是,VPN密码里面有特殊字符,用rasdial命令拨号容易密码错误,用^转义符也不起作用呢?

TOP

解决了吗?

TOP

跟楼主学习看有什么解决方案

TOP

如果ping的结果延迟过高(超过600)或者丢包率过高(超过20%)------
快4年了了!!!,
此问题终于被我关注,被我写脚本攻克  :   )  

http://www.bathome.net/thread-30586-1-1.html
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

返回列表