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

[文本处理] 求用 json 返回值 BAT 如何解释切割出版定义字段进行调用

本帖最后由 hellohgh 于 2022-1-4 18:28 编辑

来源网址:http://api.ip138.com/ip/?ip=&datatype=jsonp&token=12f911dede85b244e702cb5f59575201
ip138.vbs
用vbs命令保存网页内容:
  1. ' 要下载的文件
  2. strFileURL = "http://api.ip138.com/ip/?ip=&datatype=jsonp&token=12f911dede85b244e702cb5f59575201"
  3. ' 文件存放路径
  4. strHDLocation = "c:\ip.txt"
  5. Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
  6. objXMLHTTP.open "GET", strFileURL, false
  7. objXMLHTTP.send()
  8. If objXMLHTTP.Status = 200 Then
  9.     Set objADOStream = CreateObject("ADODB.Stream")
  10.     objADOStream.Open
  11.     objADOStream.Type = 1
  12.     objADOStream.Write objXMLHTTP.ResponseBody
  13.     objADOStream.Position = 0
  14.     Set objFSO = Createobject("Scripting.FileSystemObject")
  15.     If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
  16.     Set objFSO = Nothing
  17.     objADOStream.SaveToFile strHDLocation
  18.     objADOStream.Close
  19.     Set objADOStream = Nothing
  20. End if
  21. Set objXMLHTTP = Nothing
复制代码
保存文件"c:\ip.txt"的内容为:
  1. {"ret":"ok","ip":"113.94.52.188","data":["中国","广东","茂名","化州市","电信","525100","0668"]}
复制代码
用BAT 如何解释切割出版定义字段进行调用?

我要将各个字段都定制并设为变量,要调用的。非常感谢“for_flr”帮助,已经成功调用到IP了。
  1. @echo off
  2. for /f "tokens=4 delims=:," %%a in (C:\ID\ip.txt) do set ip=%%~a
  3. echo 外网IP:%ip%
  4. pause
复制代码
最好有不用下载保存文丁,直接调用的方法。。。。新手脑瓜痛。。。新手脑瓜痛。。。新手脑瓜痛。。。

用powershell
  1. $json='{"ret":"ok","ip":"113.94.52.188","data":["中国","广东","茂名","化州市","电信","525100","0668"]}'
  2. ($json|convertfrom-json).ip
复制代码

TOP

用批处理
  1. @echo off
  2. set var={"ret":"ok","ip":"113.94.52.188","data":["中国","广东","茂名","化州市","电信","525100","0668"]}
  3. for /f "tokens=4 delims=:," %%a in ("%var%") do echo;%%~a
复制代码

TOP

回复 3# for_flr


   
成功了。非常感谢。。但还有个疑问。如何将这个IP定义变量?我要调用这个IP值。。新手问题多,还请赐教。谢谢。

TOP

回复 2# for_flr


    感谢。

TOP

3楼最后的的echo;%%~a改为set ip=%%~a

TOP

返回列表