【问题标题】:Make log for deleted files using VBScript使用 VBScript 为已删除文件创建日志
【发布时间】:2017-09-18 13:50:19
【问题描述】:

以下是我删除 DAT 文件的代码。

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

现在我想创建一个日志文件来存储已删除文件的信息(例如文件名、脚本运行时间和运行此脚本的用户)。谁能帮我这个 ?

提前致谢..

【问题讨论】:

    标签: vbscript


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多