vbs删除sFolder目录下,nDay之前的日志

'如文件名为:abc.txt, 则返回"abc"
Function GetFileTitle(sFileName)        '求文件的名称(不含扩展名)
    Dim pos
    pos = InStrRev(sFileName, ".")      '从字符串尾部向前搜索子串(".")
    if(pos = 0) Then                    '文件无扩展名
        GetFileTitle = sFileName
    else
        GetFileTitle = Left(sFileName, pos - 1)
    end if
End Function

'删除sFolder目录下,nDay之前的日志(如nDay为3,则只保留今天、昨天、前天的日志)
Function ClearLogs(sFolder, nDay)
    Dim sFileName, sExt, sTitle
    Dim fs, oFolder, oFiles
    set fs = CreateObject("Scripting.FileSystemObject")
    set oFolder = fs.GetFolder(sFolder)
    set oFiles = oFolder.Files
    
    for each file in oFiles
        sFileName = file.Name
        sExt = fs.GetExtensionName(file)    '获取文件扩展名
        if(LCase(sExt) = "log" And Len(sFileName) = 14) Then  '文件名格式如:2011-02-14.log
            sTitle = GetFileTitle(sFileName)
            sNow = Date()                   '获取当前日期
            sDiffDays = DateDiff("d", sTitle, sNow) '求时间差,以天为单位
            if sDiffDays >= nDay Then
                file.Delete                 '删除日志文件
            end if
        end if
    Next
    ClearLogs = True
End Function

Dim sFolder, sExt, message
sFolder = "F:\Programming\Applications\VBScript\GG"

Dim fs
set fs = CreateObject("Scripting.FileSystemObject")

ClearLogs sFolder, 6                        '不接受函数返回值时,ClearLogs后不能加()
posted on 2011-02-27 16:59  清清飞扬  阅读(628)  评论(0)    收藏  举报