Board logo

标题: [网络连接] Win2008下BAT如何提取vpn拨号的地址并添加路由 [打印本页]

作者: yaua    时间: 2013-8-31 16:09     标题: Win2008下BAT如何提取vpn拨号的地址并添加路由

  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",为何,谢谢
作者: HAT    时间: 2013-8-31 20:11

你自己看看执行过程就知道是哪一步出错了。
  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
复制代码

作者: yaua    时间: 2013-9-1 09:47

回复 2# HAT


    for函数没有获得 %%i 的值,请明示
作者: HAT    时间: 2013-9-1 10:58

回复 3# yaua


    说明tokens=15是不对的,你手工执行 ipconfig|findstr "IP Address" 看看到底是第几列




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2