รักคำสั่ง PowerShell ของ 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 วัน
หมายเหตุ: นี่เป็นสคริปต์ของ Haidong Ji ที่แก้ไขแล้วใน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