[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样解析uef8文件中的ip地址?

  1. {"connections":[{"ID":2469999,"name":"123的网络","type":0,"owner_mbr_id":1049243,"members":[{"sn":"38542300:001","ID":1049020,"name":"ON11","type":"0","ip":"172.16.1.189","lan_ip":"","lan_mask":"","mac":"00-25-BC-01-22-11","dev_type":"1","is_online":1,"is_owner":0,"nat_type":4,"delay":17,"connect_type":"p2p","p2p_recv_speed":0,"p2p_send_speed":0,"p2p_recv":56132,"p2p_send":87450,"trans_recv_speed":42,"trans_send_speed":0,"trans_recv":84,"trans_send":0},{"sn":"38542300:002","ID":1049243,"name":"JD11","type":"0","ip":"172.16.2.156","lan_ip":"","lan_mask":"","mac":"00-25-9B-02-22-11","dev_type":"1","is_online":1,"is_owner":1,"nat_type":4,"delay":4294967295,"connect_type":"tcp forward","p2p_recv_speed":0,"p2p_send_speed":0,"p2p_recv":0,"p2p_send":0,"trans_recv_speed":0,"trans_send_speed":0,"trans_recv":0,"trans_send":0}]}
  2. ]}
复制代码
test.txt文本内容,格式uef8,想解析出来ip地址,写入到注册表中,替换红色内容。使用第三方软件也可以。
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\test]
"ServerName"="192.168.100.254"

第一个ip地址172.16.1.189对应的sn":"38542300:001还有"name":"ON11"是固定的,ip地址不固定。所以想解析出来写入到注册表中。第二个ip地址172.16.2.156不用管
样例文件没有传上来,上传不成功,内容就是上面的,没有换行,一行内容

样本文件传到了百度
链接: https://pan.baidu.com/s/1ksKxFGosKXkITiRGcGGmjg 提取码: kwh2 复制这段内容后打开百度网盘手机App,操作更方便哦

回复 4# went


    win7系统,可能是我系统环境的问题,提示ps什么什么错误。

TOP

回复 5# WHY


    成功

TOP

test.bat,右键选择 "以管理员身份运行"
  1. @if(0)==(0) echo off
  2. REM 待处理的 json 文件名
  3. set "srcFile=test.txt"
  4. pushd "%~dp0"
  5. for /f "delims=" %%i in ('cscript //nologo //e:jscript "%~f0" "%srcFile%"') do (
  6.     reg add "HKLM\SOFTWARE\Wow6432Node\test" /v "ServerName" /d "%%i" /f
  7. )
  8. pause & exit
  9. @end
  10. var json = eval( '(' + getText( WSH.Arguments(0) ) + ')' );
  11. var p = json.connections[0].members;
  12. for(var i=0; i<p.length; i++){
  13.     //sn=38542300:001 且 name=ON11 则回显对应的IP
  14.     if( p[i].sn == '38542300:001' && p[i].name == 'ON11' ) WSH.Echo(p[i].ip);
  15. }
  16. function getText(file){
  17.     var ado = new ActiveXObject('Adodb.Stream');
  18.     ado.Mode = 3;
  19.     ado.Type = 2;
  20.     ado.Charset = 'utf-8';
  21.     ado.Open();
  22.     ado.LoadFromFile(file);
  23.     return ado.ReadText(-1);
  24. }
复制代码
1

评分人数

TOP

  1. @echo off & cd /d "%~dp0"
  2. %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
  3. set "file=F:\Desktop\status"
  4. set "code=powershell -c "(Get-Content -Encoding UTF8 -Path '%file%' ^| ConvertFrom-Json).connections[0].members[0].ip""
  5. for /f "delims=" %%i in ('%code%') do (
  6. echo %%i
  7. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\test" /v "ServerName" /t "REG_SZ" /d "%%i" /f
  8. )
  9. pause&exit
复制代码
1

评分人数

TOP

回复 2# Batcher


不能,上传0个成功,1个失败。
文件很小,不压缩显示的才1.kb

TOP

回复 1# freesoft00


    文件压缩之后也是无法上传吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表