中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 16:01
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于排列问题,请指教?
可打印版本  876 / 10
第1楼 xg911335 发表于 2007-08-28 22:18
初级用户 发帖 50 积分 134
关于排列问题,请指教?
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楼 slore 发表于 2007-08-28 22:21
铂金会员 发帖 2,478 积分 5,212
按-分割
然后第1部分和第2部分直接合并,然后加个-第3和第4部分,再……
第3楼 xg911335 发表于 2007-08-28 22:59
初级用户 发帖 50 积分 134
你好。谢谢你的回答。能不能说明白点?
第4楼 slore 发表于 2007-08-28 23:09
铂金会员 发帖 2,478 积分 5,212
还不明白啊……

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楼 jzl168 发表于 2007-08-29 01:00
初级用户 发帖 14 积分 38
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楼 xg911335 发表于 2007-08-29 02:55
初级用户 发帖 50 积分 134
很感谢。

如果我的文本(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楼 xg911335 发表于 2007-08-29 04:05
初级用户 发帖 50 积分 134
知道问题了?原来("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楼 knoppix7 发表于 2007-08-29 07:50
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
4楼有各错误。。。
貌似应该是
@echo %%a%%b-%%c%%d-%%e%%f%%g
第9楼 ccwan 发表于 2007-08-29 08:49
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
干嘛你哦弄那么复杂?
第10楼 slore 发表于 2007-08-29 08:53
铂金会员 发帖 2,478 积分 5,212
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楼 ccwan 发表于 2007-08-29 09:01
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
re slore
我是说楼主的
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023