Jeff'in PowerShell komutunu seviyorum, ancak PowerShell olmayan Windows makineleri için alternatif bir vbs çözümü için aşağıdakileri deneyebilirsiniz.
Farklı kaydet <filename>.vbs
ve çalıştır:
<filename>.vbs <target_dir> <NoDaysSinceModified> [Action]
Üçüncü parametre [Action]
isteğe bağlıdır. O olmadan daha eski dosyalar <NoDaysSinceModified>
listelenir. Onunla D
eski dosyaları silmek gibi ayarlanmış<NoDaysSinceModified>
Örnek
PurgeOldFiles.vbs "c:\Log Files" 8
olacaktır listelemek tüm dosyaları c:\Log Files
daha eski 8 günlükken
PurgeOldFiles.vbs "c:\Log Files" 8 D
olacak silmek tüm dosyaları c:\Log Files
daha eski 8 günlükken
Not: Bu, SQLServerCentral.com'daki Haidong Ji'nin senaryosunun değiştirilmiş bir versiyonudur.
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