• 广州市第十五届人大常委会会议网络直播 2019-04-20
  • “西瓜足迹”瞎掰与“晒的虚荣” 2019-04-20
  • 习近平两会“典”亮新时代 2019-04-07
  • 中国足球,就是笑博士的“责权利平滑对接”改革的必然结果! 2019-04-03
  • 重庆高校陆续公布招生计划、专业设置情况和新政策 2019-04-03
  • 新时代 新气象 新作为 2019-03-30
  • 《中国地方志佛道教文献汇纂》——开辟佛道教研究新领域 2019-03-29
  • 拉萨市墨竹工卡县全力打造“绿色矿山” 2019-03-29
  • 习近平要求把这项工作作为重大政治任务 2019-03-24
  • 充分发挥重要平台和有效载体作用 以特色小镇建设促进乡村振兴 2019-03-18
  • 脸每天都洗,但你真的洗对了吗? 2019-03-18
  • 港珠澳大桥珠海口岸停车场智慧停车系统启用在即 2019-03-14
  • 以实际行动诠释忠诚 以实干实政维护核心 2019-03-14
  • 天津市津南区严打校园周边“五毛食品” 2019-03-11
  • 设计众议院:新时代消费观念造就的全新第八代凯美瑞 2019-03-11
  • 批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
    [批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
    返回列表 发帖

    广东十一选5:[文本处理] 【已解决】批处理BAT如何使用VBS(或者纯vbs)解析JSON

    本帖最后由 kaze 于 2019-3-10 18:29 编辑

    想要弄一个BAT如何使用VBS(或者纯vbs)解析JSON,因为JAVASCRIPT解析非常方便
    var obj = JSON.parse(ds);
    弄了一段代码,但是不知道为什么就是不成功,
    要求不要已经发布的纯BAT代码,非常复杂,看不懂,基本不能通用。有没有人能够帮忙修改一下代码
     广东十一选五计划软件 www.qe-ar.com 
    1. <!-- :
    2. @echo off
    3. echo 取金山词霸每日一句数据
    4. pause
    5. set www=
    6. set /p www=输入 "网址/" :http
    7. echo %www%
    8. echo;%www%|mshta "%~f0"
    9. exit /b
    10. -->
    11. <script>
    12. var fso = new ActiveXObject("Scripting.FileSystemObject");
    13. var StdIn = fso.GetStandardStream(0);
    14. var StdOut = fso.GetStandardStream(1);
    15. var url=StdIn.ReadLine();
    16. function Get(N) {var X = new ActiveXObject("Msxml2.XMLHTTP");
    17. X.open("GET", N, false);
    18. X.send("");
    19. return X.responseText;
    20. }
    21. var s1='1';
    22. var d={};
    23. for (var i = 0; i < 10; i++) {
    24. date = new Date();
    25. yd = +date - 86400000*i;
    26. d = new Date(yd);
    27. var yd= d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
    28. url = "//open.iciba.com/dsapi/?date="+yd;
    29. ds = Get(url);
    30. if (ds){
    31. //var obj = JSON.parse(ds);
    32. //var MottoEN=obj.content;
    33. //var MottoCN=obj.note;
    34. //var MottoCN2=obj.translation;
    35. //var MottoDate=obj.dateline;
    36. //var d[i]=yd+"\n"+MottoEN+"\n"+MottoCN+"\n"+MottoCN2+"\n";
    37. //alert('yd\nMottoEN\nMottoCN\nMottoCN2\n');
    38. var d[i]=ds;
    39. var data=d[i]+"\n";
    40. }
    41. }
    42. fso.CreateTextFile('X:\ciba.txt',2,true).Write(data);
    43. close();
    44. </script>
    复制代码

    1. /*&cls
    2. @echo off
    3. title 代码可用,扫码头像,感谢赞助;有什么问题,可加QQ956535081及时沟通
    4. cd /d "%~dp0"
    5. cscript -nologo -e:jscript "%~f0" 30
    6. pause&exit /b
    7. */
    8. var fso=new ActiveXObject('Scripting.FileSystemObject');
    9. var http=new ActiveXObject('MSXML2.XMLHTTP');
    10. var today=new Date();
    11. var result='', n=WSH.Arguments(0);
    12. for(var i=0;i<Number(n);i++){
    13.     var day=new Date(today-86400000*i);
    14.     var tmpday=day.getFullYear()+"-"+(day.getMonth()+1)+"-"+day.getDate();
    15.     var daily=getinfo(gettext(tmpday));
    16.     result+=daily+'\r\n\r\n';
    17. }
    18. //WSH.echo(result);
    19. var f=fso.CreateTextFile('dailysentence.txt', 2, true);
    20. f.Write(result);
    21. f.Close();
    22. WSH.Quit();
    23. function gettext(d){
    24.     var url='//open.iciba.com/dsapi/?date='+d;
    25.     var text='';
    26.     http.open('Get', url, false)
    27.     http.send();
    28.     text=http.responseText;
    29.     return text;
    30. }
    31. function getinfo(s){
    32.     var json=eval('('+s+')');
    33.     var content=json['content'];
    34.     var note=json['note'];
    35.     var translation=json['translation'];
    36.     var dateline=json['dateline'];
    37.     return content+'\r\n'+note+'\r\n'+translation;
    38. }
    复制代码
    1

    评分人数

      • kaze: 解决问题了技术 + 1
    提供代写,省时省力省事,支付宝扫码头像支付,QQ956535081

    TOP

    本帖最后由 kaze 于 2019-3-10 18:47 编辑

    回复 2# zaqmlp


        谢谢,:victory: :) 很完美,关键一句话  var json=eval('('+s+')');    虽然不太懂,但是套用一下拉网站数据足够了,for循环怎么倒序呢?
    搜了一下,for(var i=Number(n);i>=0;i--)完美解决,

    TOP

    vbs
    1. rem On Error Resume Next
    2. Dim http, html, strOut, i, dt, ymd, url
    3. Set http = CreateObject("Msxml2.XMLHTTP")
    4. Set html = CreateObject("htmlfile")
    5. strOut = ""
    6. For i = 0 To 9
    7.     dt  = DateAdd("d", -i, date)
    8.     ymd = Year(dt) & "-" & Right(Month(dt) + 100, 2) & "-" & Right(Day(dt) + 100, 2)
    9.     url = "//open.iciba.com/dsapi/?date=" & ymd
    10.     http.open "GET", url, False
    11.     http.send
    12.     strOut = GetJSON(http.responseText) & vbCrLf & vbCrLf & strOut
    13. Next
    14. Function GetJSON(txt)
    15.     Dim window, json
    16.     Set window = html.parentWindow
    17.     window.execScript "var json = " & txt, "JScript"
    18.     Set json = window.json
    19.     GetJSON = json.content & vbCrLf & json.note & vbCrLf
    20.     GetJSON = GetJSON & json.translation & vbCrLf & json.dateline
    21. End Function
    22. Dim fso
    23. Set fso = CreateObject("Scripting.FileSystemObject")
    24. fso.CreateTextFile("ciba.Log", 2, True).Write(strOut)
    25. MsgBox "Done"
    复制代码
    PowerShell v3.0
    1. -9..0 | ForEach{$url = '//open.iciba.com/dsapi/?date=' + (get-Date).AddDays($_).ToString('yyyy-MM-dd'); (Invoke-WebRequest $url).Content | ConvertFrom-Json | ForEach{$_.content; $_.note; $_.translation; $_.dateline}}
    复制代码
    1

    评分人数

    TOP

    回复 4# WHY


        牛啊,POWERSHELL就一句话,还是JAVASCRIPT好懂

    TOP

    返回列表
  • 广州市第十五届人大常委会会议网络直播 2019-04-20
  • “西瓜足迹”瞎掰与“晒的虚荣” 2019-04-20
  • 习近平两会“典”亮新时代 2019-04-07
  • 中国足球,就是笑博士的“责权利平滑对接”改革的必然结果! 2019-04-03
  • 重庆高校陆续公布招生计划、专业设置情况和新政策 2019-04-03
  • 新时代 新气象 新作为 2019-03-30
  • 《中国地方志佛道教文献汇纂》——开辟佛道教研究新领域 2019-03-29
  • 拉萨市墨竹工卡县全力打造“绿色矿山” 2019-03-29
  • 习近平要求把这项工作作为重大政治任务 2019-03-24
  • 充分发挥重要平台和有效载体作用 以特色小镇建设促进乡村振兴 2019-03-18
  • 脸每天都洗,但你真的洗对了吗? 2019-03-18
  • 港珠澳大桥珠海口岸停车场智慧停车系统启用在即 2019-03-14
  • 以实际行动诠释忠诚 以实干实政维护核心 2019-03-14
  • 天津市津南区严打校园周边“五毛食品” 2019-03-11
  • 设计众议院:新时代消费观念造就的全新第八代凯美瑞 2019-03-11