中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 15:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于排列问题,请指教? 查看 875 回复 10
楼 主 关于排列问题,请指教? 发表于 2007-08-28 22:18 ·  中国 云南 昆明 电信
初级用户
★★
积分 134
发帖 50
注册 2006-03-28 13:50
20年会员
UID 52939
状态 离线
192.168.1.107 00-15-f2-9a-23-a7
192.168.1.108 00-15-f2-49-f9-dd

排列后的结果
192.168.1.107 0015-f29a-23a7
192.168.1.108 0015-f249-f9dd

如何实现?
2 发表于 2007-08-28 22:21 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
按-分割
然后第1部分和第2部分直接合并,然后加个-第3和第4部分,再……
3 发表于 2007-08-28 22:59 ·  中国 云南 昆明 电信
初级用户
★★
积分 134
发帖 50
注册 2006-03-28 13:50
20年会员
UID 52939
状态 离线
你好。谢谢你的回答。能不能说明白点?
4 发表于 2007-08-28 23:09 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
还不明白啊……

for /f "tokens=1,2,3,4,5,6 delims=-" %%a in ("192.168.1.107 00-15-f2-9a-23-a7") do (
echo %%a%%b-%%c%%d-%%e%%f
)
pause
5 发表于 2007-08-29 01:00 ·  中国 广西 南宁 电信
初级用户
积分 38
发帖 14
注册 2006-08-16 15:37
19年会员
UID 60649
性别 男
状态 离线
for /f "tokens=1,2,3,4,5,6 delims=-" %%a in ("192.168.1.107 00-15-f2-9a-23-a7") do (
echo %%a%%b-%%c%%d-%%e%%f
)
pause

slore兄
为什么这段 do (
echo %%a%%b-%%c%%d-%%e%%f
)
还要加() 看不出来,想问一下为什么要加,起的做用是什么?
6 发表于 2007-08-29 02:55 ·  中国 云南 昆明 电信
初级用户
★★
积分 134
发帖 50
注册 2006-03-28 13:50
20年会员
UID 52939
状态 离线
很感谢。

如果我的文本(1.txt)如下:
192.168.0.21 00-18-f3-1b-69-cb
192.168.0.204 00-02-b3-4c-b4-89
192.168.0.205 00-13-20-4b-5c-3a
192.168.0.253 00-07-e9-0a-bc-56
192.168.0.254 00-3c-01-50-59-e4


如何排列成????
192.168.0.21 0018-f31b-69cb
192.168.0.204 0002-b34c-b489
192.168.0.205 0013-204b-5c3a
192.168.0.253 0007-e90a-bc56
192.168.0.254 003c-0150-59e4

这样写为什么不行啊?
@for /f "tokens=1,2,3,4,5,6,7 delims=-" %%a in ("1.txt") do (
@echo %%a%%b%%c-%%d%%e-%%f%%g
)
@pause


另外我试了一下
@for /f "tokens=1,2,3,4,5,6,7 delims=-" %%a in ("192.168.0.21 00-18-f3-1b-69-cb") do (
@echo %%a%%b-%%c%%d-%%e%%f%%g
)
@pause
执行结果怎么变成“192.168.0.21 0018f3-1b69-cb”。MAC排列不对?

[ Last edited by xg911335 on 2007-8-29 at 04:06 AM ]
7 发表于 2007-08-29 04:05 ·  中国 云南 昆明 电信
初级用户
★★
积分 134
发帖 50
注册 2006-03-28 13:50
20年会员
UID 52939
状态 离线
知道问题了?原来("1.txt")多了个符号.

但是MAC怎么排列不对呢?
C:\Documents and Settings\xg\桌面>()
192.168.0.204 0002b3-4cb4-89

[ Last edited by xg911335 on 2007-8-29 at 04:06 AM ]
8 发表于 2007-08-29 07:50 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
4楼有各错误。。。
貌似应该是
@echo %%a%%b-%%c%%d-%%e%%f%%g
9 发表于 2007-08-29 08:49 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
干嘛你哦弄那么复杂?
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
10 发表于 2007-08-29 08:53 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
Originally posted by jzl168 at 2007-8-29 01:00:
for /f "tokens=1,2,3,4,5,6 delims=-" %%a in ("192.168.1.107 00-15-f2-9a-23-a7") do (
echo %%a%%b-%%c%%d-%%e%%f
)
pause

slore兄
为什么这段 do (
echo %%a%%b-%%c%%d ...


写成一行的话不用加
这里加是让pause在循环外……(当然这里只有一个数据无所谓了)


另外我试了一下
@for /f "tokens=1,2,3,4,5,6,7 delims=-" %%a in ("192.168.0.21 00-18-f3-1b-69-cb") do (
@echo %%a%%b-%%c%%d-%%e%%f%%g
)
@pause
执行结果怎么变成“192.168.0.21 0018f3-1b69-cb”。MAC排列不对?

理论上应该对的,我测试也对的……不过不知道你为什么要加7加%%g
(即使加了应该不影响结果,至少我这里是的。)

Originally posted by knoppix7 at 2007-8-29 07:50:
4楼有各错误。。。
貌似应该是
@echo %%a%%b-%%c%%d-%%e%%f%%g


为什么要这样?%%g为何物?

Originally posted by ccwan at 2007-8-29 08:49:
干嘛你哦弄那么复杂?


哦?ccwan兄有什么简单的呢?
我觉得我的是最简单的了=.=
11 发表于 2007-08-29 09:01 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
re slore
我是说楼主的
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
论坛跳转: