Board logo

标题: 关于排列问题,请指教? [打印本页]

作者: xg911335     时间: 2007-8-28 22:18    标题: 关于排列问题,请指教?

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

如何实现?
作者: slore     时间: 2007-8-28 22:21
按-分割
然后第1部分和第2部分直接合并,然后加个-第3和第4部分,再……
作者: xg911335     时间: 2007-8-28 22:59
你好。谢谢你的回答。能不能说明白点?
作者: slore     时间: 2007-8-28 23:09
还不明白啊……

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
作者: jzl168     时间: 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-%%e%%f
)
还要加()  看不出来,想问一下为什么要加,起的做用是什么?
作者: xg911335     时间: 2007-8-29 02:55
很感谢。

如果我的文本(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 ]
作者: xg911335     时间: 2007-8-29 04:05
知道问题了?原来("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 ]
作者: knoppix7     时间: 2007-8-29 07:50
4楼有各错误。。。
貌似应该是
@echo %%a%%b-%%c%%d-%%e%%f%%g
作者: ccwan     时间: 2007-8-29 08:49
干嘛你哦弄那么复杂?
作者: slore     时间: 2007-8-29 08:53


  Quote:
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在循环外……(当然这里只有一个数据无所谓了)

  Quote:
另外我试了一下
@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排列不对?
[quote]
理论上应该对的,我测试也对的……不过不知道你为什么要加7加%%g
(即使加了应该不影响结果,至少我这里是的。)

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

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

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

哦?ccwan兄有什么简单的呢?
我觉得我的是最简单的了=.=
作者: ccwan     时间: 2007-8-29 09:01
re slore
我是说楼主的