中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: route print 输出到文本报错 上一主题 | 下一主题
yixiaoyun
新手上路





积分 14
发帖 6
注册 2007-12-2
状态 离线
『楼 主』:  route print 输出到文本报错

我写了一个更改特定路由的bat,是用在vpn拨号的情况下。vpn拨入后会分配一个10.10.10.0/24网段的某个ip地址,并且系统会自动把分配的ip地址设为默认路由的下一跳。我的bat的作用是自动找到那个默认路由然后,删除它,并添加一个特定的路由用分配的ip地址作为下一条路由。
内容如下:
================================================================
route print | find "0.0.0.0          0.0.0.0      10.10.10"> c:\routetable.txt
for /f "tokens=3" %%a in (c:\routetable.txt) do route delete 0.0.0.0 mask 0.0.0.0 %%a
for /f "tokens=3" %%a in (c:\routetable.txt) do route add 10.209.60.0 mask 255.255.255.0 %%a
del routetable.txt
echo. & pause
=======================================================================
这个bat必须在命令行模式下才能正常运行。如果直接在图形界面下双击bat文件,会抱错。
问题是route print | find "0.0.0.0          0.0.0.0      10.10.10"> c:\routetable.txt这句在运行的时候会报The process cannot access the file because it is being used by another process.的错误。请问这是什么问题?

2008-6-29 02:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

route print | find "0.0.0.0          0.0.0.0      10.10.10"> c:\routetable.txt
for /f "tokens=3" %%a in (c:\routetable.txt) do route delete 0.0.0.0 mask 0.0.0.0 %%a
for /f "tokens=3" %%a in (c:\routetable.txt) do route add 10.209.60.0 mask 255.255.255.0 %%a
ping -n 10 127.1 >nul
del routetable.txt
echo. & pause

这样可以吗?



2008-6-29 11:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
balinger
中级用户




积分 356
发帖 115
注册 2004-7-27
状态 离线
『第 3 楼』:  

route -f
就可以清除网关。
然后
route add .................

2008-6-29 14:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yixiaoyun
新手上路





积分 14
发帖 6
注册 2007-12-2
状态 离线
『第 4 楼』:  

谢谢帮我出主意,但是我不想清除所有默认网关,因为可能有别的我不想清除的默认网关。有别的办法么?

2008-6-29 14:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
balinger
中级用户




积分 356
发帖 115
注册 2004-7-27
状态 离线
『第 5 楼』:  

网关可以有几个,默认网关只有一个。

2008-6-29 15:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yixiaoyun
新手上路





积分 14
发帖 6
注册 2007-12-2
状态 离线
『第 6 楼』:  

但是还有一个原因需要用route print命令时,我需要自动添加一条路由,这条路由的下一跳是从route print里得到的。

2008-6-29 15:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
balinger
中级用户




积分 356
发帖 115
注册 2004-7-27
状态 离线
『第 7 楼』:  

不明白楼主要做什么。
route add 10.209.60.0 mask 255.255.255.0 %%a 不是添加网关的命令啊?

2008-6-29 16:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yixiaoyun
新手上路





积分 14
发帖 6
注册 2007-12-2
状态 离线
『第 8 楼』:  

是的。vpn连上后会分配给一个私网ip,并且把这个ip作为默认路由。但是我要和vpn内网的设备通信必须把分配的ip作为一个默认网关,才能访问vpn内部的主机。

2008-6-29 19:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 9 楼』:  

出错提示是指你那个文件被其它过程调用
在本地路由表中
0.0.0.0/0 61.61.61.61 (ADSL)  20
0.0.0.0/0 23.23.23.23 (VPN)   20
你想删除VPN自已添加的这条路由,其实不删也没什么,因为不会影响你指定静态路由
10.209.60.0/24 23.23.23.23 1



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2008-6-30 02:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yixiaoyun
新手上路





积分 14
发帖 6
注册 2007-12-2
状态 离线
『第 10 楼』:  

不删除不行,因为如果不删除,我就没有办法上公网了。其实关键的问题我是解决不了route print 命令结果输出到文本。

2008-7-1 21:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  

能否把报错的信息截图上来看看?



2008-7-1 22:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
balinger
中级用户




积分 356
发帖 115
注册 2004-7-27
状态 离线
『第 12 楼』:  

晕!你是不是把批命名为route.bat?

2008-7-1 22:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: