标题: [文本处理] 批处理如何随机读取指定文本中的MAC地址并替换另一文本特定字符串里的对应内容? [打印本页]
作者: yajiu 时间: 2016-8-27 01:25 标题: 批处理如何随机读取指定文本中的MAC地址并替换另一文本特定字符串里的对应内容?
本帖最后由 yajiu 于 2016-8-31 13:51 编辑
请问我 我有A和B共2个文件 我想读取A里产生的一个变量!ver3!。怎么批量改了B里面几个相同的字符 然后 保存在这个B文件上
读取变量我代码如下。怎么将这变量。换了B文件里的所有相同MACAddress="080027EFA4BA" 而这个MACAddress="080027EFA4BA" 中的 080027EFA4BA 是变了的时候。 也能换了
因为这次运行了换了。下次080027EFA4BA可能是变成别的mac地址数值了
凡是MACAddress=\"????????????"\就全都替换
我要的是每次我运行批处理都能换了B文件中的所有MACAddress="080027EFA4BA" 中的080027EFA4BA 就是 我A文件中!ver3!就是一个mac值
附件是A和B文件- @echo off
- ping 127.1 -n 6
- setlocal enabledelayedexpansion
- set file=mac.txt
- set line_num=0
- for /f %%i in (%file%) do set /a line_num+=1
- set /a "line=%random% %% %line_num%"
- set /a line+=1
- set line_num=0
- for /f "tokens=1-3" %%i in (%file%) do (
- set /a line_num+=1
- if !line_num!==%line% (
- set "Var1=%%i"
- set "Var2=%%j"
- set "Var3=%%k"
-
- )
- )
复制代码
作者: yajiu 时间: 2016-8-27 16:04
高手来指点下。开新贴 我又给T 不知如何是好
作者: happy886rr 时间: 2016-8-27 17:39
本帖最后由 happy886rr 于 2016-8-27 17:40 编辑
回复 13# yajiu
做个演示- @echo off
- set "var3=FCAA142AE705"
- sed -i "s/MACAddress=\"999999999\"/MACAddress=\"%var3%\"/g" B.vbox
复制代码
作者: yajiu 时间: 2016-8-28 03:28
本帖最后由 yajiu 于 2016-8-28 03:30 编辑
回复 14# happy886rr
请问能完整理些吗。我运行不能通过。
或者 可以帮将b.vbox里所有的MACAddress=\"????????????\" 都换成了MACAddress=\"!ver3!\"
作者: yajiu 时间: 2016-8-28 22:57
回复 16# idos
看下我的。怎改
作者: Batcher 时间: 2016-8-29 11:26
回复 2# yajiu
两个问题别在一个帖子里面讨论了,容易混淆。
http://bbs.bathome.net/thread-31090-2-1.html
具体经过我不清楚,猜测版主是希望你能参考别人的代码解决问题。
请和版主多做沟通,问清楚删帖或扣分的具体原因是什么。
如果沟通无果,请到站务版块投诉,把事情的来龙去脉说清楚,大家共同探讨一下怎么做更合适。
作者: happy886rr 时间: 2016-8-29 11:26
回复 4# yajiu
运行不通过那就对了,因为你没下载sed.exe地址
和批处理放一起就能正常运行了。
作者: yajiu 时间: 2016-8-31 07:14
回复 3# happy886rr
/MACAddress=\"999999999\ 这句不明. 这个MAC 地址.有时不知是什么值来的.也是一个变量
作者: happy886rr 时间: 2016-8-31 08:42
本帖最后由 happy886rr 于 2016-8-31 08:45 编辑
回复 8# yajiu
总得告诉我要替换哪个地址吧。什么都是变的,那怎么替换,请表述清你的最终要求,最终效果是什么。
你的意思是遇到MACAddress=\"????????????\就全都替换,还是特定的地址要替换。
作者: yajiu 时间: 2016-8-31 09:44
回复 9# happy886rr
MACAddress=\"????????????\就全都替换
作者: pcl_test 时间: 2016-8-31 11:57
A有5个MAC地址,B有24个符合MACAddress="??"的字符串,那么你想如何替换呢?从A获取一个MAC地址替换B里所有的MACAddress="??"么?
作者: 523066680 时间: 2016-8-31 12:02
这个话题这么久了还没结……
楼主你大标题打错字了……
作者: yajiu 时间: 2016-8-31 13:49
回复 11# pcl_test
我正是这个意思
作者: pcl_test 时间: 2016-8-31 14:34
- @more +1 "%~f0"|mshta http://bathome.net/s/hta "eval(WSH.StdIn.ReadAll())"&pause&exit
- var mac=type('A.txt').match(/[0-9A-F]{12}/ig).sort(function(){return Math.random()-0.5})[0];
- t=iconv.load('B.vbox');b=iconv.checkBom(t);if(b=='undefined')b=iconv.toStr(t,'utf-8')?'utf-8':'gb2312';
- var text=type('B.vbox').replace(/(MACAddress=")[^"]+(")/g,"$1"+mac+"$2");
- iconv.saveText(text,'New_B.vbox',b)
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |