中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 13:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]读取默认网关并添加路由表 查看 1,195 回复 5
楼 主 [求助]读取默认网关并添加路由表 发表于 2009-09-17 01:07 ·  中国 河南 商丘 联通
新手上路
积分 12
发帖 6
注册 2008-05-27 20:17
18年会员
UID 119875
性别 男
状态 离线
想走VPN上国外网站并且不影响本地网络,设置了下路由表,自己设定是没问题了,想弄个通用的处理
大致思路有了,就是不知道咋合起来
这是读取网关的

for /f "tokens=12" %%a in ('ipconfig/all^|find /i "Default Gateway "') do (set gateway=%%a)
ipconfig /all>ipconfig.txt
find /i "Default Gateway " ipconfig.txt>gateway.txt
Set sc=1
Set scfile=gateway.txt

这是设定路由表的,192.168.0.11是我的网关

route -p add 110.192.0.0 mask 255.224.0.0 192.168.0.11

现在就是不会给合起来
等待高手的解答
2 发表于 2009-09-17 06:15 ·  中国 广东 电信
新手上路
积分 14
发帖 14
注册 2009-09-08 06:17
16年会员
UID 151679
性别 男
状态 离线
@echo off
for /f "tokens=13" %%i in ('ipconfig /all ^| findstr "^Default Gateway"') do (
route -p add 110.192.0.0 mask 255.224.0.0 %%i
)
pause

这你试下行不,没测试。。。。
3 发表于 2009-09-18 14:14 ·  中国 河南 商丘 联通
新手上路
积分 12
发帖 6
注册 2008-05-27 20:17
18年会员
UID 119875
性别 男
状态 离线
谢谢回答,能用了
现在想优化这个批处理,尽量的减少重复内容
@echo off
for /f "tokens=13" %%i in ('ipconfig /all ^| findstr "^Default Gateway"') do (
route -p add 110.192.0.0 mask 255.224.0.0 %%i
route -p add 222.32.0.0 mask 255.224.0.0 %%i
route -p add 61.232.0.0 mask 255.252.0.0 %%i
route -p add 61.236.0.0 mask 255.254.0.0 %%i
route -p add 112.0.0.0 mask 255.192.0.0 %%i
::还很长的列表
)

能不能通过把列表做成一个文件,do()中route -p add 添加这个列表了,先谢谢
4 发表于 2009-09-19 09:35 ·  中国 广东 深圳 联通
新手上路
积分 14
发帖 14
注册 2009-09-08 06:17
16年会员
UID 151679
性别 男
状态 离线

@echo off
for /f "tokens=13" %%i in ('ipconfig /all ^| findstr "^Default Gateway"') do (
for /f "tokens=1,2" %%j in (1.txt) do (route -p add %%j mask %%k %%i)
)
pause



把你的IP地址和子网掩码以空格隔开,保存为1.txt
5 发表于 2009-09-20 05:43 ·  中国 河南 商丘 联通
新手上路
积分 12
发帖 6
注册 2008-05-27 20:17
18年会员
UID 119875
性别 男
状态 离线
谢谢解答

运行后发现%%i 没有加入,请问这是为何呢
6 发表于 2009-09-20 06:27 ·  中国 广东 电信
新手上路
积分 14
发帖 14
注册 2009-09-08 06:17
16年会员
UID 151679
性别 男
状态 离线
我用echo 命令测试是没问题的。。。
论坛跳转: