Удалить файлы из нескольких папок, которые старше 30 дней - PullRequest
0 голосов
/ 25 октября 2019

У меня есть VB Script, который удаляет файлы из папки, которой более 30 дней. Моя проблема, это удалит только из одной папки. Мне нужно добавить несколько путей к папке в одном скрипте, чтобы один скрипт мог удалять файлы из нескольких папок.

Const strPath = "D:\LIMS Testing\"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Call Search (strPath)

' Comment out below line if you'd like to use this script in windows schedule task
WScript.Echo"Done."

Sub Search(str)
    Dim objFolder, objSubFolder, objFile
    Set objFolder = objFSO.GetFolder(str)
    For Each objFile In objFolder.Files

        ' Use DateLastModified for modified date of a file
        If objFile.DateLastModified < (Now() - 30) Then
            objFile.Delete(True)
        End If

    Next
    For Each objSubFolder In objFolder.SubFolders
        Search(objSubFolder.Path)

        ' Files have been deleted, now see if the folder is empty.
        If (objSubFolder.Files.Count = 0) Then
            objSubFolder.Delete True
        End If

    Next
End Sub

1 Ответ

1 голос
/ 25 октября 2019

Вы можете просто позвонить Search для всех папок, которые хотите обработать:

Search "D:\LIMS Testing\"
Search "D:\some other folder\"
Search "D:\yet another folder\"

Если все папки, которые вы хотите обработать, уже находятся в одной папке (если все они находятся под D:\LIMS Testing\ например), ваш код будет работать, потому что подпрограмма Search рекурсивна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...