Команда PowerShell Love Jeff, але для альтернативного рішення vbs для машин Windows без PowerShell ви можете спробувати наступне.
Зберегти як <filename>.vbs
і виконати:
<filename>.vbs <target_dir> <NoDaysSinceModified> [Action]
Третій параметр [Action]
- необов’язковий. Без нього <NoDaysSinceModified>
будуть перераховані файли, старші, ніж вони. З його допомогою встановити, як D
він буде видаляти файли старше<NoDaysSinceModified>
Приклад
PurgeOldFiles.vbs "c:\Log Files" 8
відобразить список усіх файлів c:\Log Files
старше 8 днів
PurgeOldFiles.vbs "c:\Log Files" 8 D
буде видаляти всі файли c:\Log Files
старше 8 днів
Примітка: це модифікована версія сценарію Хайдун Джи на SQLServerCentral.com
Option Explicit
on error resume next
Dim oFSO
Dim sDirectoryPath
Dim oFolder
Dim oFileCollection
Dim oFile
Dim iDaysOld
Dim fAction
sDirectoryPath = WScript.Arguments.Item(0)
iDaysOld = WScript.Arguments.Item(1)
fAction = WScript.Arguments.Item(2)
Set oFSO = CreateObject("Scripting.FileSystemObject")
set oFolder = oFSO.GetFolder(sDirectoryPath)
set oFileCollection = oFolder.Files
If UCase(fAction) = "D" Then
'Walk through each file in this folder collection.
'If it is older than iDaysOld, then delete it.
For each oFile in oFileCollection
If oFile.DateLastModified < (Date() - iDaysOld) Then
oFile.Delete(True)
End If
Next
else
'Displays Each file in the dir older than iDaysOld
For each oFile in oFileCollection
If oFile.DateLastModified < (Date() - iDaysOld) Then
Wscript.Echo oFile.Name & " " & oFile.DateLastModified
End If
Next
End If
'Clean up
Set oFSO = Nothing
Set oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing
Set fAction = Nothing