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

[问题求助] VBS如何自动校正时间?

看了这个贴子,也测试了,感觉很好。http://www.bathome.net/viewthrea ... hlight=%CA%B1%BC%E4

我现在的情况是,主板电子没电了,每次重起后都不正确。可不可以把上面那段代码改为,没有提示的,直接校正的。我想放去随机启动。

感谢了。

改成这样
  1. 'VBS校准系统时间 BY BatMan http://www.bathome.net
  2. Dim objXML, Url, Message
  3. Message = "恭喜你,本机时间非常准确无需校对!"
  4. Set objXML = CreateObject("MSXML2.XmlHttp")
  5. Url = "http://open.baidu.com/special/time/"
  6. objXML.open "GET", Url, False
  7. objXML.send()
  8. Do Until objXML.readyState = 4 : WScript.Sleep 200 : Loop
  9. Dim objStr, LocalDate
  10. objStr = objXML.responseText
  11. LocalDate = Now()
  12. Set objXML = Nothing
  13. Dim objREG, regNum
  14. Set objREG = New RegExp
  15. objREG.Global = True
  16. objREG.IgnoreCase = True
  17. objREG.Pattern = "window.baidu_time\((\d{13,})\)"
  18. regNum = Int(objREG.Execute(objStr)(0).Submatches(0)) /1000
  19. Dim OldDate, BJDate, Num, Num1
  20. OldDate = "1970-01-01 08:00:00"
  21. BJDate = DateAdd("s", regNum, OldDate)
  22. Num = DateDiff("s", LocalDate, BJDate)
  23. If Abs(Num) >=1 Then
  24.   Dim DM, DT, TM, objSHELL
  25.   DM = DateAdd("S", Num, Now())
  26.   DT = DateValue(DM)
  27.   TM = TimeValue(DM)
  28.   If InStr(Now, "午") Then
  29.     Dim Arr, Arr1, h24
  30.     Arr = Split(TM, " ")
  31.     Arr1 = Split(Arr(1), ":")
  32.     h24 = Arr1(0)
  33.     If Arr(0) = "下午" Then
  34.       h24 = h24 + 12
  35.       Else
  36.       If h24 = 12 Then h24 = 0
  37.     End If
  38.     TM = h24 & ":" & Arr1(1) & ":" & Arr1(2)
  39.   End If
  40.   Set objSHELL = CreateObject("Wscript.Shell")
  41.   objSHELL.Run "cmd /cdate " & DT, False, True
  42.   objSHELL.Run "cmd /ctime " & TM, False, True
  43.   Num1 = Abs(DateDiff("s", Now(), BJDate))
  44.   Message = "【校准前】" & vbCrLf _
  45.     & "标准北京时间为:" & vbTab & BJDate & vbCrLf _
  46.     & "本机系统时间为:" & vbTab & LocalDate & vbCrLf _
  47.     & "与标准时间相差:" & vbTab & Abs(Num) & "秒" & vbCrLf & vbCrLf _
  48.     & "【校准后】" & vbCrLf _
  49.     & "本机系统时间为:" & vbTab & Now() & vbCrLf _
  50.     & "与标准时间相差:" & vbTab & Num1 & "秒"
  51.   Set objSHELL = Nothing
  52. End If
  53. 'WScript.Echo Message
复制代码
nevermore

TOP

楼上的耍我吧,有改过吗。

TOP

回复 3# Heykuz


    1.你确定没有改过?
    2.你没有试过代码吧?然后就知道不行?
nevermore

TOP

有没有办法批量检查多台机器本地时间后与北京时间对比???将不准的列出来

TOP

这个我我完全看不懂。。。  有谁能够解释一下吗。。  谢谢了

TOP

回复  Heykuz


    1.你确定没有改过?
    2.你没有试过代码吧?然后就知道不行?
ShadowFiend 发表于 2013-7-19 11:22



    感谢大侠,已经试用了,完全可以。再三感谢!很好用。

TOP

最后一行行头加了注释符'

TOP

返回列表