2013-11-04 31 views
0

编辑以下脚本来检查系统时间是否在上午3:05之间& 5:15 am。如果系统在这些时间之间,脚本应该显示timechecksuccess.flag,如果系统在这些时间之外,脚本应该显示timecheckfail.flag。我的脚本没有失败,因为它应该。你能告诉我我要去哪里吗?由于VB脚本来检查系统是否在特定时间

Option Explicit`enter 
On Error Resume Next 

Dim g_objShell, g_strTSuccess, g_strTFail, g_objFS, g_strDone 

Set g_objShell = CreateObject("WScript.Shell") 
Set g_objFS = CreateObject("Scripting.FileSystemObject") 

g_strTSuccess = "C:\TimeCheckSuccess.Flag" 
g_strTFail = "C:\TimeCheckFail.Flag" 
g_strDone = "C:\Done.Flag" 

If g_objFS.FileExists(g_strTSuccess) Then 
Call g_objFS.DeleteFile(g_strTSuccess, True) 
End If 

If g_objFS.FileExists(g_strTFail) Then 
Call g_objFS.DeleteFile(g_strTFail, True) 
End If 

If g_objFS.FileExists(g_strDone) Then 
Call g_objFS.DeleteFile(g_strDone, True) 
End If 

If DatePart("h" ("n", Now()) < 0305 or DatePart("h" ("n", Now()) > 0515 or     WScript.Arguments.Named.Exists("Now")))Then 

Call g_objFS.CreateTextFile(g_strTSuccess, True) Else 
Call g_objFS.CreateTextFile(g_strTFail, True) 

结束如果

Call g_objFS.CreateTextFile(g_strDone, True) 

Set g_objShell = Nothing 
Set g_objFS = Nothing 

Wscript.Quit 

回答

0
If Time() > TimeValue("3:45am") then msgbox "After 3:45am" 
If Time() < TimeValue("8:00pm") then msgbox "Before 8pm" 

和,而不是这种编码。

If g_objFS.FileExists(g_strDone) Then 
    Call g_objFS.DeleteFile(g_strDone, True) 
End If 

只需删除文件。你不测试然后做,然后你测试。你也不会使用通话。如果你关心它是否成功删除。

on error resume next 
g_objFS.DeleteFile("C:\Done.Flag", True) 
If err.number = 53 Then 
    msgbox "File didn't exist" 
elseif err.number <> 0 then 
    msgbox "unknown error" 
End If 
on error goto 0 

此外,将wscript.quit作为文件的最后一行是毫无意义的。

相关问题