中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 11:12
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]BAT如何获取这几个字符 查看 1,046 回复 9
楼 主 [求助]BAT如何获取这几个字符 发表于 2007-05-04 10:56 ·  中国 广东 中山 电信
初级用户
积分 44
发帖 20
注册 2007-05-02 21:53
19年会员
UID 87305
性别 男
状态 离线
使用ipconfig/all得到如下:

-----------------------------------------------------
Windows IP Configuration

Host Name . . . . . . . . . . . . : Join
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 Fast Ethernet NIC

Physical Address. . . . . . . . . : 00-11-09-89-1B-C4
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.254
DNS Servers . . . . . . . . . . . : 202.96.128.143
202.96.128.86
202.96.128.68
202.96.128.166

----------------------------------------------------------------------------------------------------------
我想获取次DNS:202.96.128.86以及后面的202.96.128.143,202.96.128.166.应该怎么写,请指教.
2 发表于 2007-05-04 11:42 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
看下tokens的用法
3 发表于 2007-05-04 12:48 ·  中国 广东 中山 电信
初级用户
积分 44
发帖 20
注册 2007-05-02 21:53
19年会员
UID 87305
性别 男
状态 离线
有没有代码演示一下
4 发表于 2007-05-04 13:17 ·  中国 广东 广州 黄埔区 电信
中级用户
★★
积分 326
发帖 152
注册 2007-05-04 06:16
19年会员
UID 87412
性别 男
状态 离线
什么意思啊。。。你要什么字符啊?
5 发表于 2007-05-04 15:15 ·  中国 广东 中山 电信
初级用户
积分 44
发帖 20
注册 2007-05-02 21:53
19年会员
UID 87305
性别 男
状态 离线
我想获取后备DNS
202.96.128.86
202.96.128.68
202.96.128.166
6 发表于 2007-05-04 15:45 ·  中国 北京 顺义区 联通
中级用户
★★
替身
积分 269
发帖 130
注册 2007-03-23 21:41
19年会员
UID 82683
性别 女
状态 离线
楼主试试下面的代码:

@echo off&setlocal
for /f "delims=: tokens=1,2" %%a in ('ipconfig/all^|findstr /c:"202.96"') do (
for /f %%x in ('echo/%%b %%a') do (
echo %%x
)
)

7 发表于 2007-05-04 16:41 ·  中国 广东 中山 电信
初级用户
积分 44
发帖 20
注册 2007-05-02 21:53
19年会员
UID 87305
性别 男
状态 离线
楼上的朋友,多谢了,
不过,如果是这样呢.又应该怎么写.
202.96.128.86
192.168.0.254
219.128.3.61
8 发表于 2007-05-04 16:50 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
试试这个?
for /f "skip=18 delims=" %%a in ('ipconfig /all') do @echo\%%a
9 发表于 2007-05-04 21:01 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
提供一个思路,
先使用findstr /n /c:"DNS Servers"获取DNS地址所在的行号.
然后再根据行号读取后面的地址.
QQ:366840202
http://chenall.net
10 发表于 2007-05-05 00:48 ·  中国 广东 中山 电信
初级用户
积分 44
发帖 20
注册 2007-05-02 21:53
19年会员
UID 87305
性别 男
状态 离线
多谢chenall给出的提示,已经成功了.代码:
chenall
@echo off&SetLocal ENABLEDELAYEDEXPANSION
SET string=
for /f "tokens=1* delims=:" %%P in ('ipconfig/all^|findstr /n /c:"DNS Servers"') do (
for /f "tokens=* delims=" %%I in ('ipconfig/all^|findstr /n ".*"') do (
for /f "tokens=1* delims=:" %%K in ("%%I") do (
if %%K GEQ %%P (
for /f "tokens=2 delims=: " %%J in ("%%I") do (SET string=!string!;%%J)
)
)
) )

echo ..........
echo !string!>b.txt
pause
论坛跳转: