标题: [问题求助] VBS如何自动校正时间? [打印本页]
作者: Heykuz 时间: 2013-7-17 16:32 标题: VBS如何自动校正时间?
看了这个贴子,也测试了,感觉很好。http://www.bathome.net/viewthrea ... hlight=%CA%B1%BC%E4
我现在的情况是,主板电子没电了,每次重起后都不正确。可不可以把上面那段代码改为,没有提示的,直接校正的。我想放去随机启动。
感谢了。
作者: ShadowFiend 时间: 2013-7-18 14:48
改成这样- 'VBS校准系统时间 BY BatMan http://www.bathome.net
- Dim objXML, Url, Message
- Message = "恭喜你,本机时间非常准确无需校对!"
- Set objXML = CreateObject("MSXML2.XmlHttp")
- Url = "http://open.baidu.com/special/time/"
- objXML.open "GET", Url, False
- objXML.send()
- Do Until objXML.readyState = 4 : WScript.Sleep 200 : Loop
- Dim objStr, LocalDate
- objStr = objXML.responseText
- LocalDate = Now()
- Set objXML = Nothing
- Dim objREG, regNum
- Set objREG = New RegExp
- objREG.Global = True
- objREG.IgnoreCase = True
- objREG.Pattern = "window.baidu_time\((\d{13,})\)"
- regNum = Int(objREG.Execute(objStr)(0).Submatches(0)) /1000
- Dim OldDate, BJDate, Num, Num1
- OldDate = "1970-01-01 08:00:00"
- BJDate = DateAdd("s", regNum, OldDate)
- Num = DateDiff("s", LocalDate, BJDate)
- If Abs(Num) >=1 Then
- Dim DM, DT, TM, objSHELL
- DM = DateAdd("S", Num, Now())
- DT = DateValue(DM)
- TM = TimeValue(DM)
- If InStr(Now, "午") Then
- Dim Arr, Arr1, h24
- Arr = Split(TM, " ")
- Arr1 = Split(Arr(1), ":")
- h24 = Arr1(0)
- If Arr(0) = "下午" Then
- h24 = h24 + 12
- Else
- If h24 = 12 Then h24 = 0
- End If
- TM = h24 & ":" & Arr1(1) & ":" & Arr1(2)
- End If
- Set objSHELL = CreateObject("Wscript.Shell")
- objSHELL.Run "cmd /cdate " & DT, False, True
- objSHELL.Run "cmd /ctime " & TM, False, True
- Num1 = Abs(DateDiff("s", Now(), BJDate))
- Message = "【校准前】" & vbCrLf _
- & "标准北京时间为:" & vbTab & BJDate & vbCrLf _
- & "本机系统时间为:" & vbTab & LocalDate & vbCrLf _
- & "与标准时间相差:" & vbTab & Abs(Num) & "秒" & vbCrLf & vbCrLf _
- & "【校准后】" & vbCrLf _
- & "本机系统时间为:" & vbTab & Now() & vbCrLf _
- & "与标准时间相差:" & vbTab & Num1 & "秒"
- Set objSHELL = Nothing
- End If
- 'WScript.Echo Message
复制代码
作者: Heykuz 时间: 2013-7-19 10:18
楼上的耍我吧,有改过吗。
作者: ShadowFiend 时间: 2013-7-19 11:22
回复 3# Heykuz
1.你确定没有改过?
2.你没有试过代码吧?然后就知道不行?
作者: chok 时间: 2013-7-19 11:37
有没有办法批量检查多台机器本地时间后与北京时间对比???将不准的列出来
作者: 狱渊 时间: 2013-7-19 17:33
这个我我完全看不懂。。。 有谁能够解释一下吗。。 谢谢了
作者: Heykuz 时间: 2013-7-23 08:02
回复 Heykuz
1.你确定没有改过?
2.你没有试过代码吧?然后就知道不行?
ShadowFiend 发表于 2013-7-19 11:22
感谢大侠,已经试用了,完全可以。再三感谢!很好用。
作者: vq86 时间: 2013-8-9 18:34
最后一行行头加了注释符'
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |