中国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 使用 LLM 解释/回答一下

修改了一个自动判断本地连接,切换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 楼』:   使用 LLM 解释/回答一下

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


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

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


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



论坛跳转: