|
lovef7
初级用户
积分 28
发帖 12
注册 2007-4-9
状态 离线
|
『楼 主』:
请教 批处理对 字符的运算及排列---高手进
大家好 我有个问题
一直在网上找 精通批处理教程 可是找到的都是一个内容 没有很详细的 所以我对这个问题 不知道怎么搞了
事情是这样的 我有一个 文本 面有这样的内容
:(
ABC.TXT
机器号=5
WksIP=192.168.0.5
MAC=001D0F200C29
...............
...............
WksIP=192.168.0.236
MAC=001D0F21B5E6
下面还有很多
然后 这个里面 的 IP并不是 实际IP 实际IP 是那个IP+1
上面的 实际是 192.168.0.6
还有 那个MAC 要转换成 00-1D-0F-20-0C-29 这个样子
然后 把上面两个 组合 成 192.168.0.6 00-1D-0F-20-0C-29 存放到一个 文本文件中(IP-MAC.TXT)
我写了这个
ZHU.TXT
for /f "tokens=2 delims==" %%i in ('find /i "WksIP" ABC.TXT) do echo %%i>>ip.txt
for /f "tokens=2 delims==" %%m in ('find /i "mac" ABC.TXT) do (
set mac=%%m&&call :ccc
)
echo %ip% %mac% >>IP-MACl.txt
pause
:ccc
for /f "tokens=* delims=" %%p in (ip.txt) do (
set ip=%%p
)
程序最后 只写入了 最后一个 的
IP-MAC.TXT
192.168.0.235 001D0F21B5E6
那个 001D0F21B5E6 转换成 00-1D-0F-21-B5-E6
实在是不知道搞 不过看了 SET的参数 里面 /A的 可以运算
看哪位高手能帮下忙吗
??
可以的话可以发 邮件给我
QQ:43413161 网中瘤虫
|
|
2007-10-30 12:15 |
|
|
jack123147
初级用户
积分 52
发帖 20
注册 2007-10-25
状态 离线
|
『第
2 楼』:
:ccc
set a=0
set /a ip+=1
for /f "tokens=* delims=" %%i in (ip.txt) do echo !ip!=%%p
没测试过,不知道可以不
|
|
2007-10-30 12:56 |
|
|
lovef7
初级用户
积分 28
发帖 12
注册 2007-4-9
状态 离线
|
|
2007-10-30 13:52 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
4 楼』:
@echo off
for /f "tokens=1,2,3,4,5 delims==." %%a in (t.txt) do (
if /i "%%a"=="WksIP" call :ip %%b %%c %%d %%e
if /i "%%a"=="MAC" call :mac "%%b"
)
pause
goto :eof
:ip
set ip=%4
set /a ip+=1
echo wksIP=%1.%2.%3.%ip%
goto :eof
:mac
set mac1=
set mac=%~1
:loop
set mac1=%mac1%-%mac:~0,2%
set mac=%mac:~2%
if not "%mac%"=="" goto loop
echo MAC=%mac1:~1%
goto :eof
|
|
2007-10-30 13:59 |
|
|
lovef7
初级用户
积分 28
发帖 12
注册 2007-4-9
状态 离线
|
|
2007-10-30 14:05 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
6 楼』:
Quote: | WksIP=192.168.0.5
MAC=001D0F200C29
WksIP=192.168.0.236
MAC=001D0F21B5E6 |
|
我测试的结果是
Quote: | wksIP=192.168.0.6
MAC=00-1D-0F-20-0C-29
wksIP=192.168.0.237
MAC=00-1D-0F-21-B5-E6 |
|
难道不对吗??
|
|
2007-10-30 14:07 |
|
|
lovef7
初级用户
积分 28
发帖 12
注册 2007-4-9
状态 离线
|
『第
7 楼』:
回复的时候 来了为兄弟
我再测试下
|
|
2007-10-30 14:07 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
8 楼』:
哦,知道了,是IP和MAC要在同一行,是吧?
|
|
2007-10-30 14:09 |
|
|
lovef7
初级用户
积分 28
发帖 12
注册 2007-4-9
状态 离线
|
『第
9 楼』:
4 楼的兄弟 不好意思 你的我在测试 非常感谢你
|
|
2007-10-30 14:09 |
|
|
lovef7
初级用户
积分 28
发帖 12
注册 2007-4-9
状态 离线
|
『第
10 楼』:
恩 是要同一行 其实 我就是要 做成 MAC-IP 绑定 就是 防止ARP 的
兄弟你有 QQ 吗 我加你
交流下
|
|
2007-10-30 14:11 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
11 楼』:
@echo off
for /f "tokens=1,2,3,4,5 delims==." %%a in (t.txt) do (
if /i "%%a"=="WksIP" call :ip %%b %%c %%d %%e
if /i "%%a"=="MAC" call :mac "%%b"&call echo %%ip%% %%mac1:~1%%
)
pause
goto :eof
:ip
set ip=%4
set /a ip+=1
set "ip=%1.%2.%3.%ip%"
goto :eof
:mac
set mac1=
set mac=%~1
:loop
set mac1=%mac1%-%mac:~0,2%
set mac=%mac:~2%
if not "%mac%"=="" goto loop
goto :eof
|
|
2007-10-30 14:12 |
|