วิธีลบไฟล์ที่เก่ากว่า X Days บน Windows
เราได้แสดงให้คุณเห็นแล้วว่า Linux shell นั้นมีความยืดหยุ่นแค่ไหน แต่นั่นก็ไม่ได้หมายความว่า Windows จะเป็นสิ่งที่อยู่เบื้องหลัง ต่อไปนี้เป็นเทคนิคสองประการที่คุณสามารถใช้ได้โดยขึ้นอยู่กับความต้องการของเชลล์ cmd หรือ PowerShell.
PowerShell 3
Get-ChildItem -Path“ C: \ Backups” -Recurse ตำแหน่งของวัตถุ CreationTime -lt (Get-Date) .AddDays (-5) | ลบรายการ
PowerShell 2
Get-ChildItem -Path“ C: \ Backups” -Recurse โดยที่-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | ลบรายการ
คำอธิบาย
- ก่อนอื่นเราจะได้รับวัตถุ FileInfo และ DirectoryInfo ใน Path C: \ Backups.
- วัตถุ FileInfo และ DirectoryInfo ทั้งคู่มีคุณสมบัติ CreationTime ดังนั้นเราจึงสามารถกรองการรวบรวมโดยใช้สิ่งนั้นได้.
- ตัวดำเนินการ -lt (น้อยกว่า) จะถูกใช้เพื่อเปรียบเทียบคุณสมบัติ CreationTime ของวัตถุด้วยการลบวันที่ (วันที่ปัจจุบัน) ลบ 5 วัน.
- สิ่งนี้ทำให้เรามีชุดของวัตถุที่สร้างขึ้นมากกว่า 5 วันที่ผ่านมาซึ่งเราส่งผ่านไปยังรายการลบ.
เคล็ดลับโปร
หากต้องการดูสิ่งที่จะถูกลบคุณสามารถใช้พารามิเตอร์ -WhatIf:
Get-ChildItem -Path“ C: \ Backups” -Recurse ตำแหน่งของวัตถุ CreationTime -lt (Get-Date) .AddDays (-5) | ลบรายการ - สิ่งที่ถ้า
พร้อมรับคำสั่ง
ในขณะที่เราแนะนำให้คุณใช้วิธี PowerShell อย่างใดอย่างหนึ่งโดยไม่ต้องเข้าไปในรายละเอียดใด ๆ ที่เป็นของแข็งคุณสามารถทำได้จากพรอมต์คำสั่ง.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
เคล็ดลับโปร
หากต้องการดูว่าไฟล์ใดที่จะถูกลบคุณสามารถใช้ echo.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"