d盘根目录下的dmp文件每天定时生成,因为硬盘会满
所以需要一个bat文件删除15天前的d盘根目录下的dmp文件,可以用vbscript写,其他文件不能删除

解决方案 »

  1.   

    '添加引用 Microsoft Scripting Runtime
    Option Explicit
    Dim m_lngFileCount   As Long   '定义计数器
    Dim m_objFSO   As Scripting.FileSystemObject   '定义文件系统对象
    Private Sub DelFolder(strPath As String)
        Dim objFolder   As Scripting.Folder   '文件夹对象
        Dim objFile   As Scripting.File   '文件对象
        Dim objSubdirs   As Scripting.Folders   '文件夹集合对象
        Dim objLoopFolder   As Scripting.Folder   '文件夹对象
        Debug.Print "Checking  directory  " & strPath
        Set objFolder = m_objFSO.GetFolder(strPath)
        For Each objFile In objFolder.Files
            If UCase$(Right$(objFile.ShortPath, 4)) = ".DMP" Then
                If (DateDiff("d", CDate(objFile.DateCreated), Date)) >= 15 Then
                    objFile.Delete True
                    m_lngFileCount = m_lngFileCount + 1
                End If
            End If
        Next objFile
        Set objSubdirs = objFolder.SubFolders
        For Each objLoopFolder In objSubdirs
            DelFolder objLoopFolder.Path
        Next objLoopFolder
        Set objSubdirs = Nothing
        Set objFolder = Nothing
    End SubPrivate Sub Command1_Click()
        Set m_objFSO = New Scripting.FileSystemObject
        m_lngFileCount = 0
        DelFolder "D:\"
        MsgBox "删除D盘下DMP文件总数:  " & m_lngFileCount
    End Sub
      

  2.   

    用批处理比较费劲吧,如果是vb,应该是很简单的.fso对象,获取一个文件对象:用GetFile方法将指定路径的文件赋予一个文件对象变量,以读取文件的有关属性,如获取文件的创建时间,修改时间等。例如:
    Dim lxn As New Scripting.FileSystemObject
    Dim yqs As File
    Private Sub Command1_Click()
    Set yqs = lxn.GetFile("e:\cde.wav")
    Print yqs.DateCreated
    End Sub
    文件对象File和文件夹对象Folder的属性如下:
    文件(夹)的创建时间:DateCreated属性;
    文件(夹)的最后访问时间:DateLastAccessed属性;
    文件(夹)的最后修改时间:DateLastModified属性;通过时间差就可以删除需要删除的文件了
      

  3.   

    用vb script写成.vbs文件会比bat方便些