โฮมเพจ » ทำอย่างไร » วิธีลบไฟล์ที่เก่ากว่า X Days บน Windows

    วิธีลบไฟล์ที่เก่ากว่า 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"