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() ในโค้ดได้อย่างอิสระ เพื่อย้ายไฟล์ที่เก่ากว่าตัวเลขอื่นแทน ของวัน


