中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]自动判断本地连接,切换ip
作者:
标题: [求助]自动判断本地连接,切换ip 上一主题 | 下一主题
gkjkjcom
初级用户





积分 38
发帖 12
注册 2007-9-6
状态 离线
『楼 主』:  [求助]自动判断本地连接,切换ip

修改了一个自动判断本地连接,切换ip的批处理
在运行批处理后,先读取本地连接ip信息,再进行手动选择ip
现在进行到显示本地ip信息后,就中断了,请高手帮忙看一下

谢谢,代码如下:
--------------------
Copy code
@echo off
mode con cols=84 lines=21
title IP地址设定工具
color 3f
cls
echo.
echo.
echo                    IP地址更换 for /XP-----By Benteng302
echo          -----------------------------------------------------------------
echo          [F] 按 F 键更换为办公室IP
echo          [U] 按 U 键自动获取 IP
echo          [S] 按 S 备份IP 设置
echo          [R] 按 R 恢复备份 IP (备份位于D:\IP备份\config.txt,勿删除!)
echo          [Q] 按其他任意键退出
echo          -----------------------------------------------------------------
::调用格式:
call :select "ip address" "ip"
call :select "Physical Address" "mac"
call :select "Default Gateway" "gateway"
call :select "DNS Servers" "dns"
call :select "Description" "netcard"

:: 演示效果
echo          本机IP:%ip%
echo          本机MAC:%mac%
echo          本机DNS:%dns%
echo          网关IP:%gateway%
echo          网卡名称:%netcard%
ipconfig /all >d:\ipconfig.txt
echo          已经将此信息存在D:\ipconfig.txt
echo          -----------------------------------------------------------------
pause>nul
goto :eof
::**************************************************************
::              解析ipconfig命令输出通用函数
::**************************************************************
:select
    for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "!%~2!" == "" set "%~2=%%i"
goto :eof
echo.
SET /P Choice=        请选择要进行的操作:
IF /I '%Choice:~0,1%'=='f' GOTO ipset1
IF /I '%Choice:~0,1%'=='u' GOTO ipset2
IF /I '%Choice:~0,1%'=='s' GOTO backup
IF /I '%Choice:~0,1%'=='r' GOTO restore

:ipset1
echo.
echo                          正在更换为办公室IP,请稍侯...  
for /f "usebackq tokens=1 delims=:" %%i in (`ipconfig^|findstr /n /c:"IP Address"`) do (
        for /f  "usebackq tokens=1,3* delims=: " %%a in (`ipconfig^|findstr /n /c:"Ethernet adapter"`) do (
                if %%i GTR %%a (set 连接=%%c)
        )
)
set 连接=%连接::=%
netsh interface ip set dns name="%连接%" source=static addr=61.164.33.160 register=PRIMARY
netsh interface ip add dns name="%连接%" addr=192.168.1.1 index=2
netsh interface ip set wins name="%连接%" source=static addr=none           
echo                        感谢使用,按任意键退出...
pause>nul
exit

:ipset2
echo.
echo                          正在更换为 自动获取 IP,请稍侯...  
echo 现在开始设置本机IP
netsh interface ip set address "%连接%" source = dhcp

echo 现在开始设置本机DNS
netsh interface ip set dns "%连接%" source = dhcp

echo.  
echo                  感谢使用,按任意键退出...
pause>nul
exit

:backup
echo.
echo                          正在备份IP设置,请稍侯...  
md D:\IP备份
netsh -c int ip dump>D:\IP备份\config.txt
attrib +h +s D:\IP备份
echo.  
echo                  备份完毕,按任意键退出...
pause>nul
exit


:restore
echo.
echo                          正在还原备份IP,请稍侯...  
netsh exec D:\IP备份\config.txt
echo.  
echo                  还原完毕,按任意键退出...
pause>nul
exit

2007-10-18 10:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gkjkjcom
初级用户





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

顶一下,希望朋友们帮忙看看

2007-10-18 22:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: