找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23457|回复: 3

[网络连接] Win2008下BAT如何提取vpn拨号的地址并添加路由

[复制链接]
发表于 2013-8-31 16:09:15 | 显示全部楼层 |阅读模式
  1. echo off
  2. rasdial vpn name pass
  3. set gw=218.5.63.1
  4. for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "IP Address"') do set gw=%%i
  5. set gw=%gw: =%
  6. echo please wait...
  7. route add 10.10.10.0 mask 255.255.255.0 %gw% metric 5
  8. echo done.
复制代码
有些地址需vpn登录,但又不想中断外网,故vpn拨号选择不自动更改网关,而是手动通过批处理添加
以上xp下的代码,使用正常

现在系统更新到Win2008,以上代码报错,论坛搜了下,把第四行改成如下
  1. for /f "tokens=15" %%i in ('ipconfig ^| findstr /i "IPv4"') do set gw=%%i
复制代码
其他不变
批处理执行route add时,添加的网关不是通过find 函数取得的,而是第三行的"218.5.63.1",为何,谢谢
发表于 2013-8-31 20:11:26 | 显示全部楼层
你自己看看执行过程就知道是哪一步出错了。
  1. rasdial vpn name pass
  2. set gw=218.5.63.1
  3. for /f "tokens=15" %%i in ('ipconfig ^| findstr /i "IPv4"') do (
  4.     echo ---%%i
  5.     set gw=%%i
  6. )
  7. set gw=%gw: =%
  8. echo please wait...
  9. echo route add 10.10.10.0 mask 255.255.255.0 %gw% metric 5
  10. pause
复制代码
 楼主| 发表于 2013-9-1 09:47:27 | 显示全部楼层
回复 2# HAT


    for函数没有获得 %%i 的值,请明示
发表于 2013-9-1 10:58:11 | 显示全部楼层
回复 3# yaua


    说明tokens=15是不对的,你手工执行 ipconfig|findstr "IP Address" 看看到底是第几列
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:23 , Processed in 0.017830 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表