Мне нужно удалить файлы старше двух дней внутри папки, за исключением файлов, последний раз измененных 1-го числа каждого месяца. Forfiles не поддерживает исключения. Операционная система — Windows Server 2003. Есть идеи?
Спасибо всем за помощь!
решение1
Быстрый и грязный VBScript здесь, он предполагает формат даты UK для перечисления, если файл с 1-го числа месяца. Если вы используете другой формат даты, измените команду trim, чтобы захватить соответствующие позиции чисел. Например, дата в США будет Mid(objFile.DateLastModified, 4, 2) = 01, а не Left(objFile.DateLastModified, 2) = 01
В любом случае, извините за грязный код... но он должен помочь вам начать.
strFolder = "C:\DeleteTest"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolder)
Set colFiles = objFolder.Files
strDaysOld = 2
'Get files from target folder
For Each File in colFiles
set objFile = objFSO.GetFile(strFolder & "\" & File.Name)
'Enumerate last modified date/time and delete if older than 2 days but where the date doesn't start with '01'
If objFile.DateLastModified < (Date() - strDaysOld) AND NOT Left(objFile.DateLastModified, 2) = 01 Then
objFSO.DeleteFile objFile, true
End If
Next
решение2
Я бы сказал, что это будет зависеть от вашего знакомства и умения работать с языками программирования/скриптинга.
Например, вот PowerShellпример. Я немного больше склоняюсь к разновидностям Python, Perl (*nix/Linux), и что-то подобное было бы довольно легко сделать на Python (пример).
Оба эти примера взяты из поиска в Google.powershell удалить файлы старшеилиpython удалить файлы старше...на случай, если вы захотите проверить альтернативы.
Я не знаком ни с какими инструментами GUI или инструментами быстрой настройки, чтобы сделать это, поскольку они мне никогда не были нужны. Все, о чем вы спрашиваете, можно закодировать менее чем в 20 строках в большинстве случаев.