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

[网络连接] 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",为何,谢谢

回复 3# yaua


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

TOP

回复 2# HAT


    for函数没有获得 %%i 的值,请明示

TOP

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

TOP

返回列表