[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我自己也写过这个脚本,但发现好几个时间采集点经常出错自己的时间都不正确,你们遇到了吗?

TOP

回复 7# ygqiang

batman的作品可以使用,只是偶尔会出现源时间不准的现象,与程序无关
  1. if getset("网络校时")="1" then
  2.         if ping("baidu.com")<888 then
  3.             debug("已完成网络校时:" & Set_Net_DateTime() ) '根据网络设置正确时间
  4.         else
  5.             debug ("网络似乎没有通,无法校时")
  6.        end if
  7. end if
  8. Function Set_Net_DateTime()'网络校时,批处理之家batman作品
  9.     Dim objXML, Url, objStr, LocalDate,objREG, regNum,OldDate, BJDate, Num, Num1,DM, DT, TM, objSHELL,Arr, Arr1, h24
  10.     Set_Net_DateTime= "本机时间非常准确无需校对."
  11.     Set objXML = CreateObject("MSXML2.XmlHttp")
  12.     Url = "http://open.baidu.com/special/time/"
  13.     objXML.open "GET", Url, False
  14.     objXML.send()
  15.     Do Until objXML.readyState = 4 : WScript.Sleep 200 : Loop
  16.     objStr = objXML.responseText
  17.     LocalDate = Now()
  18.     Set objXML = Nothing
  19.     Set objREG = New RegExp
  20.     objREG.Global = True
  21.     objREG.IgnoreCase = True
  22.     objREG.Pattern = "window.baidu_time\((\d{13,})\)"
  23.     regNum = Int(objREG.Execute(objStr)(0).Submatches(0)) /1000
  24.     OldDate = "1970-01-01 08:00:00"
  25.     BJDate = DateAdd("s", regNum, OldDate)
  26.     Num = DateDiff("s", LocalDate, BJDate)
  27.     If Abs(Num) >=1 Then
  28.         DM = DateAdd("S", Num, Now())
  29.         DT = DateValue(left(DM,instr(DM," ")))
  30.         tmp3=trim(left(DT,instr(DT," ")))
  31.         if tmp3 > "" then DT=tmp3
  32.         TM = right(DM,len(DM)-InstrRev(DM," "))
  33.         if len(TM)<4 then tmp3=trim(left(DM,InstrRev(DM,TM)-1)):TM=right(tmp3,len(tmp3)-InstrRev(tmp3," "))& " " & TM
  34.         TM=TimeValue(TM)
  35.         If InStr(Now, "午") Then
  36.             Arr = Split(TM, " ")
  37.             Arr1 = Split(Arr(1), ":")
  38.             h24 = Arr1(0)
  39.             If Arr(0) = "下午" Then
  40.                 h24 = h24 + 12
  41.                 if h24=24 then h24=12
  42.             Else
  43.                 If h24 = 12 Then h24 = 0
  44.             End If
  45.             TM = h24 & ":" & Arr1(1) & ":" & Arr1(2)
  46.         End If
  47.         Set objSHELL = CreateObject("Wscript.Shell")
  48.         objSHELL.Run "cmd /c date " & DT, 0, True
  49.         objSHELL.Run "cmd /c time " & TM, 0, True
  50.         Num1 = Abs(DateDiff("s", Now(), BJDate))
  51. Set_Net_DateTime = "本机" & LocalDate & vbTab & "与标准时间" & BJDate & vbTab & "相差:" & vbTab & Abs(Num) & "秒"
  52.         Set objSHELL = Nothing
  53.     End If
  54. End Function
复制代码

TOP

返回列表