Suka perintah Jeff PowerShell, tetapi untuk solusi vbs alternatif untuk mesin Windows tanpa PowerShell Anda bisa mencoba yang berikut ini.
Simpan sebagai <filename>.vbs
dan jalankan:
<filename>.vbs <target_dir> <NoDaysSinceModified> [Action]
Parameter ketiga, [Action]
adalah opsional. Tanpanya file yang lebih tua dari yang <NoDaysSinceModified>
akan terdaftar. Dengan itu diatur karena D
akan menghapus file yang lebih tua dari<NoDaysSinceModified>
Contoh
PurgeOldFiles.vbs "c:\Log Files" 8
akan mendaftar semua file yang c:\Log Files
berumur lebih dari 8 hari
PurgeOldFiles.vbs "c:\Log Files" 8 D
akan menghapus semua file yang c:\Log Files
berumur lebih dari 8 hari
Catatan: ini adalah versi modifikasi dari skrip Haidong Ji di 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