Board logo

标题: [文本处理] 批处理如何随机读取指定文本中的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文件
  1. @echo off
  2. ping 127.1 -n 6
  3. setlocal enabledelayedexpansion
  4. set file=mac.txt
  5. set line_num=0
  6. for /f %%i in (%file%) do set /a line_num+=1
  7. set /a "line=%random% %% %line_num%"
  8. set /a line+=1
  9. set line_num=0
  10. for /f "tokens=1-3" %%i in (%file%) do (
  11.     set /a line_num+=1
  12.     if !line_num!==%line% (
  13.         set "Var1=%%i"
  14.         set "Var2=%%j"
  15.         set "Var3=%%k"
  16.     )
  17. )
复制代码

作者: yajiu    时间: 2016-8-27 16:04

高手来指点下。开新贴 我又给T  不知如何是好
作者: happy886rr    时间: 2016-8-27 17:39

本帖最后由 happy886rr 于 2016-8-27 17:40 编辑

回复 13# yajiu
做个演示
  1. @echo off
  2. set "var3=FCAA142AE705"
  3. 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

开新贴 我又给T

具体经过我不清楚,猜测版主是希望你能参考别人的代码解决问题。
请和版主多做沟通,问清楚删帖或扣分的具体原因是什么。
如果沟通无果,请到站务版块投诉,把事情的来龙去脉说清楚,大家共同探讨一下怎么做更合适。
作者: 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

  1. @more +1 "%~f0"|mshta http://bathome.net/s/hta "eval(WSH.StdIn.ReadAll())"&pause&exit
  2. var mac=type('A.txt').match(/[0-9A-F]{12}/ig).sort(function(){return Math.random()-0.5})[0];
  3. t=iconv.load('B.vbox');b=iconv.checkBom(t);if(b=='undefined')b=iconv.toStr(t,'utf-8')?'utf-8':'gb2312';
  4. var text=type('B.vbox').replace(/(MACAddress=")[^"]+(")/g,"$1"+mac+"$2");
  5. iconv.saveText(text,'New_B.vbox',b)
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2