中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 05:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 分享更改网关和DNS批处理 查看 1,146 回复 0
楼 主 分享更改网关和DNS批处理 发表于 2007-01-22 05:17 ·  中国 辽宁 沈阳 电信
新手上路
积分 14
发帖 4
注册 2007-01-22 03:15
19年会员
UID 77291
性别 男
状态 离线
这个批处理是本人自编的,主要用于网吧或者有两个网关上网的用户切换网关线路和DNS用,这里用了比较多的DOS命令,拿出来共同学习一下。代码不多,应该很容易看懂。

注释:在定义部分定义好网络连接的名称,显示选项名称,线路A和B的网关及DNS1-2的值,若无DN2则填入none,然后在运行时会让你作出选择,选择相应选项后会自动修改成你的定义的网关和DNS值。

@echo off
rem 定义部分:
set CONNAME=本地连接
set A_DISNAME=聊天专线
set A_GATEWAY=192.168.1.1
set A_DNS1=202.103.96.112
set A_DNS2=None
set B_DISNAME=游戏专线
set B_GATEWAY=192.168.1.100
set B_DNS1=61.234.254.5
set B_DNS2=61.144.56.100

rem 主体部分:
:P_HEAD
echo 请选择要切换的线路:
echo A.%A_DISNAME%(%A_GATEWAY%)
echo B.%B_DISNAME%(%B_GATEWAY%)
set num=Q
set /p num=选择:
if /i %num%==Q (goto P_END) else (if /i %num%==A (goto P_A) else (if /i %num%==B (goto P_B) else (echo 输入错误,请重新选择!
echo.
goto P_Head)))

:P_A
netsh interface ip set address "%CONNAME%" static gateway=%A_GATEWAY% gwmetric=0
netsh interface ip set dns "%CONNAME%" static %A_DNS1%
if /i %A_DNS2% NEQ NONE (netsh interface ip add dns "%CONNAME%" %A_DNS2%)
echo 线路已成功切换!以下为切换后的信息:
echo 网关:%A_GATEWAY% DNS1:%A_DNS1% DNS2:%A_DNS2%
goto P_END

:P_B
netsh interface ip set address "%CONNAME%" static gateway=%B_GATEWAY% gwmetric=0
netsh interface ip set dns "%CONNAME%" static %B_DNS1%
if /i %B_DNS2% NEQ NONE (netsh interface ip add dns "%CONNAME%" %B_DNS2%)
echo 线路已成功切换!以下为切换后的信息:
echo 网关:%B_GATEWAY% DNS1:%B_DNS1% DNS2:%B_DNS2%

:P_END
echo.
echo.
echo 操作完毕! 程序编辑:骏野 2007.1.19
echo.
pause

[ Last edited by junboy168 on 2007-1-21 at 04:20 PM ]
论坛跳转: