Powershell การลบไฟล์ออกจากโฟลเดอร์ผู้ใช้ การลบไฟล์ที่เก่ากว่า n วัน การสร้างงานในตัวกำหนดเวลางาน

หนึ่งในคุณสมบัติ เวอร์ชันล่าสุด Windows 10 สามารถรักษาความสะอาดของตัวเองได้โดยการลบไฟล์ที่ไม่จำเป็นออกโดยอัตโนมัติหลังจากช่วงระยะเวลาหนึ่ง ในระบบเวอร์ชันก่อนหน้าซึ่งยังไม่ได้ใช้ฟังก์ชันนี้ คุณสามารถใช้ได้ บรรทัดคำสั่ง, คอนโซล พาวเวอร์เชลล์และแม้กระทั่ง คอนดักเตอร์แม้ว่าขั้นตอนการทำความสะอาดโดยใช้อย่างหลังจะไม่สะดวกนักก็ตาม

ลองพิจารณาทั้งสามตัวเลือก

ลบไฟล์เก่าโดยใช้ Explorer

เทปสำรวจ วินโดวส์ 10และ 8.1 มีเครื่องมือที่ช่วยให้คุณจัดเรียงไฟล์ทั้งหมดในไดเร็กทอรีตามวันที่แก้ไข ประเภท ขนาด และคุณสมบัติอื่น ๆ สมมติว่าคุณต้องการลบไฟล์ที่เก่ากว่าหนึ่งเดือน ไปที่โฟลเดอร์ที่มีไฟล์เก็บไว้แล้วกด F3 บนแป้นพิมพ์ ในกรณีนี้ คุณจะสลับไปที่ส่วนการค้นหาในฟีด Explorer

คลิกที่ไอคอน "วันที่แก้ไข"และเลือกช่วงเวลาที่ต้องการ (ในกรณีนี้คือหนึ่งเดือน) จากรายการแบบเลื่อนลง

Explorer จะจัดเรียงไฟล์ทั้งหมดทันทีตาม พารามิเตอร์ที่กำหนดดังนั้นสิ่งที่คุณต้องทำคือเลือกพวกมันด้วยเมาส์แล้วส่งไปที่ถังขยะ วิธีการนี้ง่ายแต่ไม่สะดวกเป็นพิเศษ เนื่องจากทุกอย่างต้องทำด้วยมือ ยังมีอีกมาก วิธีการที่มีประสิทธิภาพลบไฟล์เก่าแล้วมาดูกัน

การลบไฟล์เก่าบนบรรทัดคำสั่ง

หากต้องการลบไฟล์ออกจาก "หมดอายุ" เราจะใช้ยูทิลิตี้คอนโซล ForFiles.exeรับผิดชอบในการเลือกวัตถุและดำเนินการตามที่ระบุ ยูทิลิตี้นี้รองรับพารามิเตอร์หลายตัว ได้แก่:

/ส- ช่วยให้คุณสามารถทำการค้นหาแบบเรียกซ้ำได้
/ป- ระบุเส้นทางไปยังส่วนหรือไดเร็กทอรี
/D- ระบุจำนวนวันนับตั้งแต่การแก้ไขครั้งล่าสุด
/ค- ระบุคำสั่งการดำเนินการในไฟล์

เกี่ยวกับทีม สำหรับไฟล์คุณยังสามารถระบุตัวแปรที่ส่งคืนค่าที่แตกต่างกันได้ เช่น @ไฟล์ซึ่งส่งคืนชื่อไฟล์และเป็นสิ่งที่เราจะใช้ ตัวอย่างเช่น ลองลบไฟล์ทั้งหมดที่เก่ากว่า 10 วันในโฟลเดอร์ "รูปภาพ"ซึ่งอยู่ที่รูทของดิสก์ระบบ

เปิดบรรทัดคำสั่งและรันคำสั่งต่อไปนี้:

ForFiles /p "C:\Pictures" /s /d -10 /c "cmd /c del @file"

ForFiles / p "C:\Pictures" / s / d - 10 / c "cmd /c del @file"

ตัวอย่างใช้สามคีย์ /หน้า (เส้นทาง) , /วิ (เรียกซ้ำ)และ /วัน (จำนวนวัน) เช่นเดียวกับคำสั่งลบ เดลและตัวแปรชื่อไฟล์ @ไฟล์- เมื่อเรากด Enter แล้ว สำหรับไฟล์จะผ่านเนื้อหาทั้งหมดของโฟลเดอร์ "รูปภาพ", รวมถึงไดเรกทอรีย่อยและ จะลบไฟล์ทั้งหมดที่เก่ากว่า 10 วัน .

อย่างที่คุณเห็น วิธีนี้มีประสิทธิภาพและเร็วกว่า นอกจากนี้ คุณสามารถทำให้เป็นอัตโนมัติได้โดยการสร้างงานใน Scheduler

บันทึก: หลังจากดำเนินการคำสั่ง คอนโซลอาจแสดงข้อความว่าไม่พบไฟล์บางไฟล์ ไม่ต้องกังวล มันเป็นปกติ ไฟล์ที่ซ่อนอยู่ฐานข้อมูลที่รับผิดชอบการตั้งค่าแค็ตตาล็อก หากไม่อยู่ในโฟลเดอร์ (และในทางทฤษฎีมันควรจะเป็น),ForFiles จะแจ้งให้ผู้ใช้ทราบเกี่ยวกับเรื่องนี้

การลบไฟล์เก่าโดยใช้ PowerShell

ที่นี่เกือบทุกอย่างเหมือนกับในตัวอย่างด้วย บรรทัดคำสั่งยกเว้นว่าไวยากรณ์จะแตกต่างกัน สมมติว่าเส้นทางไปยังโฟลเดอร์ที่มีไฟล์หรือเป้าหมายของเราไม่เปลี่ยนแปลง เปิดตัวคอนโซล พาวเวอร์เชลล์และดำเนินการคำสั่งเช่นนี้

บางครั้งคุณจำเป็นต้องลบไฟล์ที่เก่ากว่า n วัน ตัวอย่างเช่น การสำรองข้อมูล คุณสามารถทำได้ด้วยตนเอง จัดเรียงตามวันที่และลบออก หรือคุณสามารถใช้สคริปต์ก็ได้ ใน ในตัวอย่างนี้เราจะดูสคริปต์เพื่อลบไฟล์ที่เก่ากว่า n วันและเพิ่มงานลงในตัวกำหนดตารางเวลา วินโดวส์เซิร์ฟเวอร์ 2012R2.

1.

2.

สคริปต์สำหรับลบไฟล์ที่เก่ากว่า n วัน

จริงๆ แล้วสคริปต์นั้นง่ายมาก มันถูกสร้างขึ้นใน PowerShell และมีลักษณะดังนี้:

FORFILES /p F:\สำรอง\ /s /m *.* /d -30 /c "CMD /c เดล /Q @FILE"

ที่ไหน:
F:\สำรอง\— เส้นทางที่โฟลเดอร์ที่เราจะค้นหาไฟล์ที่จะลบ
*.* — ชื่อไฟล์ (มาสก์)
/วัน -30— เราต้องลบไฟล์เก่ากว่ากี่วัน

นี่คือลักษณะที่ปรากฏใน PowerShell:

สิ่งที่เหลืออยู่ก็คือทำให้เสร็จแค่นั้นเอง

การสร้างงานในตัวกำหนดเวลางาน

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

แล้วเราต้องการอะไรสำหรับสิ่งนี้?

ก่อนอื่นเราไปที่ " เริ่ม -> แผงควบคุม -> เครื่องมือการดูแลระบบ"และวิ่งไปที่นั่น" ผู้จัดตารางงาน«.

เลือกรายการ “ สร้างงาน«:

บน " ทั่วไป» ตั้งชื่องาน คำอธิบาย และผู้ใช้ที่จะดำเนินการ ตามค่าเริ่มต้น จะมีผู้ใช้ที่คุณเข้าสู่ระบบอยู่ในปัจจุบัน

โปรแกรมหรือสคริปต์

และระบุเส้นทางไปยัง PowerShell:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

และในการโต้แย้งเราระบุเส้นทางไปยังสคริปต์ของเราซึ่งเราสร้างไว้ก่อนหน้านี้:

ไฟล์ "c:\script\ochistkaf.ps1"

คลิก " ตกลง"และอีกครั้ง" ตกลง»

เพียงเท่านี้ งานของเราก็ถูกสร้างขึ้น สิ่งที่เหลืออยู่คือรอจนกว่าการดำเนินการตามกำหนดเวลาจะเสร็จสิ้นและตรวจสอบว่าทุกอย่างได้รับการกำหนดค่าอย่างถูกต้องหรือไม่