『第
2 楼』:
DateDiff 函数的第一个参数有"s"和 "h"的选项,可以满足测试秒和小时。我根据你的代码稍作修改。假设如果X小时后文件没有变化则运行Xhours_autos.bat。
另:你的子函数没有返回值,可改为SUB。
*********************************************************
public lastchange,fso,f,WshShell,blnYes
Const Xhours=5
Const filespec="记录.txt"
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filespec)
lastchange=f.DateLastModified
msgbox "文件最后修改时间:"&lastchange&vbcrlf&"现在开始监控文件....."
blnYes=TRUE
Do While blnYes
getnow=f.DateLastModified
checkLastTime(getnow)
wscript.sleep 1000
Loop
msgbox "程序结束"
Set WshShell =Nothing
Set fso = Nothing
Set f = Nothing
'- - - - - - - - - - - - -- - - - - - - - -
Sub checkLastTime(NowTime)
'监视文件是否改动,如果X小时后文件没有变化则运行Xhours_autos.bat
If datediff("s",lastchange,NowTime)<>0 Then
WshShell.Run "autos.bat",0,true
wscript.sleep 1000
lastchange=f.DateLastModified
End If
Hours=datediff("h",lastchange,NowTime)
If Hours=Xhours Then
WshShell.Run "Xhours_autos.bat",0,true
wscript.sleep 1000
lastchange=f.DateLastModified
If MsgBox("你是否要继续监控文件?",,vbYesNo)=vbNo Then
blnYes=FALSE
End If
End If
End Sub
****************************************************
我自己没有经测试。
|