ค้นหาเว็บไซต์

PowerShell: วิธีย้ายไฟล์ที่เก่ากว่า X วัน


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน PowerShell เพื่อย้ายไฟล์ทั้งหมดในไดเร็กทอรีที่เก่ากว่าจำนวนวันที่กำหนด:

Get-ChildItem -Recurse -File |
Where LastWriteTime -lt (Get-Date).AddDays(-10) |
Move-Item -Destination 'c:/users/bobbi/data1'

ตัวอย่างนี้จะย้ายไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันที่มีอายุมากกว่า 10 วันไปยังโฟลเดอร์อื่นชื่อ data1 ในตำแหน่งเฉพาะ

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีย้ายไฟล์ทั้งหมดที่เก่ากว่า X วันโดยใช้ PowerShell

สมมติว่าเราต้องการย้ายไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันของเราที่ถูกแก้ไขเมื่อ 10 วันก่อน

ขั้นแรก เราสามารถใช้คำสั่ง Get-ChildItem -File เพื่อดูแต่ละไฟล์ในไดเร็กทอรีปัจจุบันของเรา:

เราจะเห็นว่ามีไฟล์ห้าไฟล์ในไดเร็กทอรีนี้ซึ่งมีวันที่และเวลา LastWriteTime ต่างกัน

โปรดทราบว่าขณะนี้บทความนี้กำลังเขียนเมื่อ 6/7/2024 สมมติว่าเราต้องการลบไฟล์ทั้งหมดที่เก่ากว่า 10 วัน

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:

Get-ChildItem -Recurse -File |
Where LastWriteTime -lt (Get-Date).AddDays(-10) |
Move-Item -Destination 'c:/users/bobbi/data1'

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

โปรดสังเกตว่าเมื่อเราเรียกใช้ Get-ChildItem cmdlet อีกครั้ง เราจะเห็นว่าไฟล์ทั้งสองที่เก่ากว่า 10 วันได้ถูกย้ายออกจากไดเรกทอรีแล้ว

เราสามารถใช้ Get-ChildItem cmdlet เพื่อดูไฟล์ในโฟลเดอร์ data1 ได้ด้วย:

เราจะเห็นว่าทั้งสองไฟล์ที่เก่ากว่า 10 วันในโฟลเดอร์ data2 ถูกย้ายไปยังโฟลเดอร์ data1 เรียบร้อยแล้ว

หมายเหตุ: คุณสามารถเปลี่ยน -10 ในฟังก์ชัน AddDays() ในโค้ดได้อย่างอิสระ เพื่อย้ายไฟล์ที่เก่ากว่าตัวเลขอื่นแทน ของวัน

บทความที่เกี่ยวข้อง