2013-02-18 52 views
0

以下是我的代碼來刪除DAT文件。使用VBScript記錄刪除的文件

OPTION EXPLICIT 
DIM strExtensionsToDelete,strFolder 
DIM objFSO, MaxAge, IncludeSubFolders 

' ************************************************************ 
' Setup 
' ************************************************************ 

' Folder to delete files 
strFolder = "E:\test" 
' Delete files from sub-folders? 
includeSubfolders = true 
' A comma separated list of file extensions 
' Files with extensions provided in the list below will be deleted 
strExtensionsToDelete = "dat" 
' Max File Age (in Days). Files older than this will be deleted. 
maxAge = 0 

' ************************************************************ 

set objFSO = createobject("Scripting.FileSystemObject") 

DeleteFiles strFolder,strExtensionsToDelete, maxAge, includeSubFolders 

wscript.echo "Finished" 

sub DeleteFiles(byval strDirectory,byval strExtensionsToDelete,byval maxAge,includeSubFolders) 
DIM objFolder, objSubFolder, objFile 
DIM strExt 

set objFolder = objFSO.GetFolder(strDirectory) 
for each objFile in objFolder.Files 
    for each strExt in SPLIT(UCASE(strExtensionsToDelete),",") 
     if RIGHT(UCASE(objFile.Path),LEN(strExt)+1) = "." & strExt then 
      IF objFile.DateLastModified < (Now - MaxAge) THEN 
       wscript.echo "Deleting:" & objFile.Path & " | " & objFile.DateLastModified 
       objFile.Delete 
       exit for 
      END IF 
     end if 
    next 
next  
if includeSubFolders = true then ' Recursive delete 
    for each objSubFolder in objFolder.SubFolders 
     DeleteFiles objSubFolder.Path,strExtensionsToDelete,maxAge,includeSubFolders 
    next 
end if 
end sub 

現在我想創建一個日誌文件來存儲被刪除的文件信息(如文件的名稱,當腳本運行和用戶誰運行此腳本)。誰能幫我這個 ?

在此先感謝..

回答

1

如果我應該去你的風格模式。

' outside your DeleteFiles() 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set LogFile = objFSO.CreateTextFile(objFSO.GetTempName) 
LogFile.WriteLine "DateTime: " & Now 
LogFile.WriteLine "UserName: " & CreateObject("WScript.NetWork").UserName 

DeleteFiles ... 

' outside your DeleteFiles() 
LogFile.Close 

WScript.Echo "Finished" 

Sub DeleteFiles(... 

    ' inside For..Next in DeleteFiles() 
    LogFile.WriteLine objFile.Path 

End Sub 
+0

謝謝。我會檢查你的代碼.. – user1619228 2013-02-18 14:59:39