我需要根据10:05 AM到20:30 PM之间的时间范围运行vbs脚本。这是我当前的代码:
If Hour(Now()) >= 10 OR hour(Now()) < 20 Then
WScript.Echo "Time Range"
Else
WScript.Echo "NOT Time Range"
End If
但是我正在努力处理分钟部分。 对我来说,查看VBS的Minute Function文档并不十分清楚。
答案 0 :(得分:2)
使用Time()
函数检索当前时间并检查时间文字,或者如果您需要使用字符串(例如,从某处检索配置),则可以使用CDate
函数检索时间< / p>
Dim startTime, endTime
' Using time literals
If InTime( #10:05#, #20:30# ) Then
WScript.Echo "In time range"
Else
WScript.Echo "NOT in time range"
End If
' Using strings
If InTime( CDate("10:05") , CDate("20:30") ) Then
WScript.Echo "In time range"
Else
WScript.Echo "NOT in time range"
End If
' Logic moved to a function to avoid duplication in previous samples
Function InTime( startTime, endTime )
Dim currentTime
currentTime = Time()
InTime = CBool( ( currentTime >= startTime ) And ( currentTime <= endTime ) )
End Function
已编辑以适应评论
OP在检查时间范围时问为什么And
而不是Or
。虽然问题中的情况应以And
处理(当前时间必须大于开始时间 And
,小于结束时间),但在某些情况下,{{1 }}必须使用:当检查的时间范围在午夜之前开始并在结束时通过。如果是这样,情况会改变
Or