ฉันไม่รู้จักโปรแกรมเสริมของ Explorer ใด ๆ แต่เช่นเดียวกับส่วนใหญ่ใน Windows สิ่งนี้สามารถทำได้ด้วย PowerShell:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
$Path = $Drive.Name + ':\$Recycle.Bin'
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Remove-Item -Recurse
}
บันทึกสคริปต์นี้เป็นไฟล์ข้อความที่มี.ps1
นามสกุล จากนั้นคุณสามารถใช้ Task Scheduler เพื่อรันสิ่งนี้ในช่วงเวลาปกติ
อย่างไรก็ตามอันดับแรกคุณต้องอนุญาตการเรียกใช้งานสคริปต์ PowerShell เนื่องจากตามค่าเริ่มต้นคุณสามารถดำเนินการคำสั่งที่พิมพ์ลงในพรอมต์ PowerShell ได้โดยตรง หากต้องการทำสิ่งนี้ให้เปิด PowerShell และพิมพ์คำสั่งต่อไปนี้:
Set-ExecutionPolicy RemoteSigned
พิมพ์ "y" หรือ "ใช่" เมื่อได้รับแจ้ง ดูGet-Help Set-ExecutionPolicy
ข้อมูลเพิ่มเติม
ตอนนี้เปิด Task Scheduler และสร้างงานใหม่ด้วยพารามิเตอร์ต่อไปนี้:
- ในแท็บ "ทั่วไป" ให้ป้อนชื่อและทำเครื่องหมายที่ตัวเลือก "เรียกใช้ด้วยสิทธิ์สูงสุด"
- ใต้แท็บ "ทริกเกอร์" ให้เพิ่มทริกเกอร์ใหม่และตั้งค่าให้เรียกใช้ทุกวัน
- ใต้แท็บ "การกระทำ" ให้เพิ่มการกระทำใหม่:
- ปล่อยให้พิมพ์เป็น "เริ่มโปรแกรม"
- ตั้งค่าฟิลด์ "โปรแกรม / สคริปต์" เป็น
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- ตั้งค่าฟิลด์ "เพิ่มอาร์กิวเมนต์" เป็น
-NonInteractive -File "C:\path\to\script.ps1"
- ภายใต้แท็บ "เงื่อนไข" ให้ยกเลิกการเลือก "เริ่มงานเฉพาะเมื่อคอมพิวเตอร์ใช้ไฟ AC"
คำอธิบายสคริปต์แต่ละบรรทัด:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
นี่คือรายการของไดรฟ์ทั้งหมดในคอมพิวเตอร์และวนซ้ำไปเรื่อย ๆ -PSProvider FileSystem
พารามิเตอร์จะต้องเพียงดิสก์ไดรฟ์กลับมาเพราะ PowerShell ยังมี pseudodrives สิ่งอื่น ๆ เช่นกลุ่มรีจิสทรี
สำหรับข้อมูลเพิ่มเติมโปรดดูที่Get-Help Get-PSDrive
และการกวดวิชานี้ในการประมวลผลในวง PowerShell
$Path = $Drive.Name + ':\$Recycle.Bin'
สิ่งนี้จะสร้างพา ธ ไปยังโฟลเดอร์ Recycle Bin ในไดรฟ์ปัจจุบัน สังเกตการใช้เครื่องหมายคำพูดเดี่ยวรอบส่วนที่สองเพื่อป้องกัน PowerShell จากการตีความ$Recycle
เป็นตัวแปร
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
สิ่งนี้จะคืนค่าไฟล์และโฟลเดอร์ย่อยทั้งหมดภายใต้พา ธ ที่กำหนด (อันที่เราสร้างด้วยคำสั่งก่อนหน้า) -Force
พารามิเตอร์เป็นสิ่งจำเป็นที่จะไปลงในโฟลเดอร์ที่ซ่อนอยู่และระบบและ-Recurse
พารามิเตอร์ทำให้ recursive คำสั่งคือ วนรอบไดเรกทอรีย่อยทั้งหมดเช่นกัน -ErrorAction
เป็นพารามิเตอร์มาตรฐานสำหรับคำสั่ง PowerShell ส่วนใหญ่และค่าSilentlyContinue
ทำให้คำสั่งละเว้นข้อผิดพลาด วัตถุประสงค์นี้เพื่อป้องกันข้อผิดพลาดสำหรับไดรฟ์ที่ได้รับการกำหนดค่าให้ลบไฟล์ทันที |
สัญลักษณ์ที่ท่อท้ายสุดผลให้คำสั่งต่อไป; ฉันแบ่งออกเป็นหลายบรรทัดเพื่อให้อ่านง่ายขึ้น
Get-Help Get-ChildItem
สำหรับข้อมูลเพิ่มเติมโปรดดูที่
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
การทำเช่นนี้จะกรองผลลัพธ์จากคำสั่งก่อนหน้าและคืนเฉพาะรายการที่เก่ากว่า 30 วัน $_
อ้างถึงวัตถุที่กำลังประมวลผลและLastWriteTime
คุณสมบัติในกรณีนี้หมายถึงวันที่และเวลาที่ไฟล์ถูกลบ Get-Date
ส่งคืนวันที่ปัจจุบัน
สำหรับข้อมูลเพิ่มเติมโปรดดูที่และGet-Help Where-Object
Get-Help Get-Date
Remove-Item -Recurse
นี่เป็นการลบรายการที่ส่งผ่านไปโดยคำสั่งก่อนหน้า -Recurse
พารามิเตอร์โดยอัตโนมัติลบเนื้อหาของโฟลเดอร์ย่อยที่ไม่ว่างเปล่านั้น ไม่ว่าคุณจะได้รับแจ้งให้โฟลเดอร์ดังกล่าว
Get-Help Remove-Item
สำหรับข้อมูลเพิ่มเติมโปรดดูที่