Мне нужно удалить в папке файлы старше двух дней, за исключением файлов, измененных в последний раз 1 числа каждого месяца. Forfiles не поддерживает исключения. Операционная система - Windows Server 2003. Есть идеи?
Всем спасибо за помощь!
Я бы сказал, что это будет зависеть от вашего знакомства и комфорта с языками программирования / сценариев.
Например, вот PowerShell пример. Я более неравнодушен к разновидностям Python, Perl (* nix / Linux), и что-то подобное было бы довольно просто в Python (пример).
Оба этих примера взяты из Google. PowerShell удаляет файлы старше или python удаляет файлы старше ... на случай, если вы захотите проверить альтернативы.
Я не знаком с какими-либо инструментами графического интерфейса или инструментами быстрой настройки, чтобы сделать это, поскольку они мне никогда не были нужны. В большинстве случаев все, о чем вы спрашиваете, можно закодировать менее чем в 20 строк.
Быстрый и грязный VBScript здесь, он предполагает формат даты в Великобритании для перечисления, если файл относится к 1-му числу месяца. Если вы используете другой формат даты, измените команду обрезки, чтобы захватить соответствующие позиции чисел. Например, дата в США будет 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