中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何取得ipconfig/all中的备用DNS地址?[已解决]
作者:
标题: [求助]如何取得ipconfig/all中的备用DNS地址?[已解决] 上一主题 | 下一主题
antony521
新手上路




积分 14
发帖 14
注册 2010-3-29
状态 离线
『楼 主』:  [求助]如何取得ipconfig/all中的备用DNS地址?[已解决]

动态获取IP,ipconfig/all得到的文本如下:


Windows IP Configuration



        Host Name . . . . . . . . . . . . : mingtian

        Primary Dns Suffix  . . . . . . . :

        Node Type . . . . . . . . . . . . : Unknown

        IP Routing Enabled. . . . . . . . : No

        WINS Proxy Enabled. . . . . . . . : No



Ethernet adapter 本地连接:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : Realtek RTL8139/810X Family PCI Fast Ethernet NIC

        Physical Address. . . . . . . . . : 00-60-4f-00-B8-BB

        Dhcp Enabled. . . . . . . . . . . : Yes

        Autoconfiguration Enabled . . . . : Yes

        IP Address. . . . . . . . . . . . : 192.168.0.2

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

        Default Gateway . . . . . . . . . : 192.168.0.1

        DHCP Server . . . . . . . . . . . : 192.168.0.1

        DNS Servers . . . . . . . . . . . : 218.147.135.14

                                            218.146.10.110

                                            192.168.0.1

        Lease Obtained. . . . . . . . . . : 2010年4月15日 20:25:15

        Lease Expires . . . . . . . . . . : 2010年4月16日 20:25:15

怎样获得以上文本中的备用DNS地址,也就是218.146.10.110这段.
我用这句得到的不正确,还望高手指点.
for /f "skip=21 tokens=1 delims= " %%i in ('ipconfig/all') do set dns2=%%i&echo %%i

[ Last edited by antony521 on 2010-4-18 at 11:04 ]

2010-4-17 21:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 2 楼』:  

@echo off
for /f "skip=19" %%a in ('ipconfig /all') do set dns2=%%a
echo.%dns2%
pause

2010-4-17 22:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
antony521
新手上路




积分 14
发帖 14
注册 2010-3-29
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by newxso at 2010-4-17 22:21:
@echo off
for /f "skip=19" %%a in ('ipconfig /all') do set dns2=%%a
echo.%dns2%
pause

newxso的代码没注意命令返回中的空行,备用DNS在第22行,另外这段代码返回的是最后一行的第一个字段也就是Lease ,最后dns2得到的不是我想要的值,还请各位高手指教!

2010-4-17 22:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by antony521 at 2010-4-17 22:33:

newxso的代码没注意命令返回中的空行,备用DNS在第22行,另外这段代码返回的是最后一行的第一个字段也就是Lease ,最后dns2得到的不是我想要的值,还请各位高手指教!

对于skip=跳过的行数必须是固定的,他不能因为机器的不同和配置发生变化而变化,否则这样的批处理就失去了通用性和实用性。
例如,你再插一个网卡,或者网络协议发生变化,skip=就很可能需要重新修改。

[ Last edited by Hanyeguxing on 2010-4-18 at 07:32 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-18 00:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 5 楼』:  

仅用于“开始”-“运行”中:
cmd /q/k for /F "tokens=1,2* delims=:. " %a in ('ipconfig/all') do (if defined s echo.DNS2:%a.%b.%c&pause&exit)&if /i "%a %b"=="DNS Servers" set s==
只显示dns2:
@echo off
for /F "tokens=1,2* delims=:. " %%a in ('ipconfig/all') do (if defined s echo.DNS2:%%a.%%b.%%c&pause&exit)&if /i "%%a %%b"=="DNS Servers" set s==
提取到变量%s%:
@echo off
for /F "tokens=1,2* delims=:. " %%a in ('ipconfig/all') do (if defined s set s=%%a.%%b.%%c&goto:hanye)&if /i "%%a%%b"=="DNSServers" set s=no
:hanye
echo.DNS Servers 2:%s%&pause
显示dhcp、dns1、dns2:
@echo off
for /F "tokens=1,2* delims=:. " %%a in ('ipconfig/all') do (
if defined dns1 set dns2=%%a.%%b.%%c&set d&pause&exit
if /i "%%a %%b"=="DNS Servers" (set "dns1=%%c")else set "dhcp=%%c")
[ Last edited by Hanyeguxing on 2010-4-18 at 07:33 ]

   此帖被 +1 点积分    点击查看详情   
评分人:【 antony521 分数: +1  时间:2010-4-18 10:56




批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-18 01:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
antony521
新手上路




积分 14
发帖 14
注册 2010-3-29
状态 离线
『第 6 楼』:  

ipconfig/all静态设置和动态设置返回的信息有很多不同,动态增加了几行内容.这样为获取造成困难要区分两种情况.

2010-4-18 07:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
antony521
新手上路




积分 14
发帖 14
注册 2010-3-29
状态 离线
『第 7 楼』:  

老大出手就是强啊!代码具有通用性.
不过有些命令没见过,不知道什么意思?
if defined s echo.DNS2:%%a.%%b.%%c
defined是定义的意思吧?批命令中有这个吗?

老大给来段读取ipconfig/all中的连接名称\IP\SUBMASK\网关\MAC\DNS!\DNS2\网卡等内容的代码给我们这些初学者做示例如何?
谢谢Hanyeguxing!!!!!

[ Last edited by antony521 on 2010-4-18 at 08:25 ]

2010-4-18 08:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 8 楼』:  

http://bbs.bathome.net/thread-7661-1-1.html
写到这里了

[ Last edited by Hanyeguxing on 2010-4-18 at 08:36 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-18 08:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





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

if defined的应用示例
http://bbs.bathome.net/thread-444-1-1.html

批处理中的if defined 需知
http://bbs.bathome.net/thread-2050-1-1.html

介绍一位朋友-defined
http://bbs.bathome.net/thread-6461-1-1.html



2010-4-18 13:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
liuchaooe
初级用户





积分 26
发帖 14
注册 2010-3-13
来自 河南
状态 离线
『第 10 楼』:  

谢谢楼主.....

2010-4-18 19:25
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (281775435)  编辑帖子  回复  引用回复

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


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



论坛跳转: