ลบไฟล์เก่าออกจากถังรีไซเคิลโดยอัตโนมัติในขณะที่เก็บไฟล์ใหม่อยู่หรือไม่


25

ฉันต้องการ explorer add-on ซึ่งจะลบไฟล์เก่าออกจากถังขยะรีไซเคิลหลังจากระยะเวลาหนึ่ง

ตัวอย่างเช่นฉันต้องการตั้งเวลาให้ 30 วัน เมื่อฉันลบไฟล์ใน Windows ซอฟต์แวร์จะเก็บบันทึกเวลาการลบ ทุกวันมันจะสแกนหาไฟล์ที่ถูกลบซึ่งมีอายุถึง 30 วันและจะลบหากมี

มีซอฟต์แวร์แบบนี้หรือไม่?


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

3
@WilliamJackson นั่นอาจเป็นคำตอบสำหรับผู้ที่มีพื้นที่ จำกัด ในฮาร์ดดิสก์ แต่ในกรณีของฉันฉันต้องการตรวจสอบให้แน่ใจว่าฉันจะไม่เสียใจกับการรีไซเคิลไฟล์เปล่าเนื่องจากการสูญเสียไฟล์ที่ถูกลบไปเมื่อเร็ว ๆ นี้ ด้วยระบบนี้ฉันจะลืมเกี่ยวกับถังรีไซเคิลมันจะทำให้ตัวเองว่างเปล่าโดยอัตโนมัติและฉันจะมีเวลาเหลือเฟือในการกู้คืนไฟล์ที่ถูกลบหากฉันเสียใจภายหลัง
hkBattousai

1
ในโลกของ gnu / linux KDE มีคุณสมบัตินี้และฉันคิดว่ามันยอดเยี่ยมสำหรับการใช้งาน เหตุใดฉันจึงควรเก็บในถังขยะสามารถส่งไฟล์มากกว่า 1 เดือนได้ วิธีนี้จะไม่ทำให้ถังขยะของคุณมีไฟล์เก่าที่จะไม่เกี่ยวข้องกับคุณอีกต่อไปดังนั้นจึงเป็นเรื่องง่ายในการค้นหาและกู้คืนหนึ่งไฟล์ขึ้นไปเมื่อคุณต้องการ (มีประโยชน์จริง ๆ ถ้าคุณทำงานด้วยข้อความจำนวนมาก ไฟล์ที่มีขนาดเล็กเสมอ) และไม่ต้องเสียพื้นที่ดิสก์ด้วยไฟล์ที่ไม่มีประโยชน์สำหรับคุณ
gerlos

มันไม่ใช่ explorer add on และเป็นเพียง 24 ชั่วโมง แต่ CCleaner มีตัวเลือกนี้i.imgur.com/JaeJhzU.png
Matthew Lock

คำตอบ:


9

RecycleBinExเป็นแอปพลิเคชั่นที่เรียบง่ายสำหรับ Windows ที่ทำสิ่งที่คุณต้องการอย่างแท้จริง ดู: http://www.fcleaner.com/recyclebinex

บน Mac OSX Hazelก็ทำสิ่งเดียวกัน (ท่ามกลางคนอื่น): http://www.noodlesoft.com/

KDE Plasma จัดส่งคุณลักษณะนี้เป็นค่าเริ่มต้นดังนั้นหากคุณใช้ Kubuntu, Arch, Chackra Linux หรือ distro อื่น ๆ ที่ใช้ KDE คุณมีคุณสมบัตินี้อยู่แล้ว แค่มองไปที่หน้าต่างการตั้งค่าโลมา

บน Ubuntu Unity, Gnome หรือสภาพแวดล้อมเดสก์ท็อป gnu / linux อื่น ๆ ที่มีคุณสมบัติถังขยะFreeDesktop.orgมาตรฐานคุณสามารถใช้AutoTrashเพื่อทำสิ่งนี้: http://www.logfish.net/pr/autotrash/
พฤติกรรมที่คล้ายคลึงกันสามารถทำได้เช่นกัน ด้วยtrash-cliที่สามารถใช้เพื่อส่งไฟล์ไปยังถังขยะได้จากบรรทัดคำสั่ง ดู: https://github.com/andreafrancia/trash-cli

แอพอีเมลส่วนใหญ่มีคุณสมบัตินี้สำหรับ "ถังขยะ" ของพวกเขา

บน Android ไม่มี "ถังขยะ" ที่เป็นค่าเริ่มต้น (เมื่อคุณลบมันจะหายไปตลอดกาล) แต่คุณสามารถติดตั้งแอปเช่นDumpsterไปที่ (อย่างใด) ได้รับคุณสมบัติที่คล้ายกัน: http://www.dumpsterapp.mobi/

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

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

ดูบริการคลาวด์ส่วนใหญ่ที่นั่น (Dropbox, Google Drive, Simplenote, ... ) ซึ่งส่วนใหญ่ดูเหมือนจะมีนโยบายที่คล้ายกันสำหรับไฟล์ที่ถูกลบ ฉันคิดว่ามันเป็นสิ่งที่ถูกต้องที่จะทำอย่างไรกับไฟล์ของคุณ


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

1
เพิ่มดีในรายการที่เป็นtrash-cliเครื่องมือถังขยะบรรทัดคำสั่งคล้ายกับautotrashที่ช่วยให้คุณส่งไฟล์ไปยังถังขยะแม้จากบรรทัดคำสั่ง ดูwebupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.htmlและgithub.com/andreafrancia/trash-cli
gerlos

RecycleBinEx จะทำงานใน Windows 10 หรือไม่ ดูเหมือนว่าจะไม่ใช่คุณลักษณะเริ่มต้นที่มีให้ใน Windows 10
still_dreaming_1

1
@ still_dreaming_1 ครั้งล่าสุดที่ฉันลอง (หลายเดือนที่ผ่านมา) RecycleBinExดูเหมือนว่าจะทำงานบน Windows 10 แต่ฉันไม่ได้ใช้มันเป็นระบบหลักของฉันดังนั้นฉันจึงไม่สามารถบอกได้ว่ามันยังใช้งานได้กับการอัปเดตล่าสุดของระบบ
gerlos

1
ฉันเพิ่งลอง RecycleBinEx บน Windows 10 GUI มีพฤติกรรมแปลก ๆ - ไฟล์บางไฟล์ในถังรีไซเคิลปรากฏขึ้นพร้อมชื่อไฟล์อักขระเดี่ยว - แต่ตัวเลือกบรรทัดคำสั่งเพื่อลบไฟล์ที่เก่ากว่า X วันดูเหมือนว่าจะทำงานได้ดี เมื่อต้องการดูตัวเลือกบรรทัดคำสั่งพิมพ์ "RecycleBinEx.exe /?" ที่บรรทัดคำสั่ง
แอรอน

17

ฉันไม่รู้จักโปรแกรมเสริมของ 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 และสร้างงานใหม่ด้วยพารามิเตอร์ต่อไปนี้:

  1. ในแท็บ "ทั่วไป" ให้ป้อนชื่อและทำเครื่องหมายที่ตัวเลือก "เรียกใช้ด้วยสิทธิ์สูงสุด"
  2. ใต้แท็บ "ทริกเกอร์" ให้เพิ่มทริกเกอร์ใหม่และตั้งค่าให้เรียกใช้ทุกวัน
  3. ใต้แท็บ "การกระทำ" ให้เพิ่มการกระทำใหม่:
    • ปล่อยให้พิมพ์เป็น "เริ่มโปรแกรม"
    • ตั้งค่าฟิลด์ "โปรแกรม / สคริปต์" เป็น C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • ตั้งค่าฟิลด์ "เพิ่มอาร์กิวเมนต์" เป็น -NonInteractive -File "C:\path\to\script.ps1"
  4. ภายใต้แท็บ "เงื่อนไข" ให้ยกเลิกการเลือก "เริ่มงานเฉพาะเมื่อคอมพิวเตอร์ใช้ไฟ 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-ObjectGet-Help Get-Date

Remove-Item -Recurse

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

Get-Help Remove-Itemสำหรับข้อมูลเพิ่มเติมโปรดดูที่


ฉันจะตั้งขึ้น. ขอบคุณมากที่อธิบายในรายละเอียดนี้มาก
hkBattousai

3
powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1อีกทางเลือกหนึ่งในการกำหนดนโยบายทั่วโลกดำเนินการที่คุณสามารถสร้างบรรทัดคำสั่งที่ชุดมันสำหรับกระบวนการ:
jpmc26

Recycle Bin ในมุมมองรายละเอียดนักสำรวจมีคอลัมน์พิเศษ: "วันที่ถูกลบ" ฉันสงสัยว่าเราจะกรองการใช้งานแทนได้อย่างไร LastWriteTime ไม่ใช่สิ่งเดียวกันไม่ว่าด้วยวิธีใด
Ciantic

พูดเร็วเกินไปพบสิ่งนี้: baldwin-ps.blogspot.fi/2013/07/…มันมี "Date Deleted" อยู่ในนั้นด้วย
Ciantic

4

Windows Recycle Bin จะลบไฟล์ที่เก่ากว่าโดยอัตโนมัติเมื่อถึงขนาดสูงสุด: จะเกิดอะไรขึ้นเมื่อ Recycle Bin ใช้พื้นที่ที่จัดสรรแล้ว

คุณสามารถควบคุมสิ่งนี้ได้จากคุณสมบัติของ Recylce Bin

ป้อนคำอธิบายรูปภาพที่นี่


1
คำตอบนี้ไม่ตอบคำถามเนื่องจากกลไกนี้ไม่ได้คำนึงถึงอายุเฉพาะของไฟล์ มันจะลบไฟล์ที่เก่าที่สุดของอายุโดยพลการเท่านั้นเพื่อรักษาปริมาณข้อมูลที่กำหนดไว้ล่วงหน้า
Jonathan J
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.