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