Alte Dateien automatisch aus dem Papierkorb löschen und neue behalten?

25

Ich möchte ein Explorer-Add-On, das alte Dateien nach einer gewissen Zeit aus dem Papierkorb löscht.

Zum Beispiel möchte ich das Zeitlimit auf 30 Tage setzen. Wenn ich eine Datei in Windows lösche, zeichnet die Software die Löschzeit auf. Täglich wird nach gelöschten Dateien gesucht, deren Alter 30 Tage erreicht hat, und ggf. gelöscht.

Gibt es eine solche Software?

hkBattousai
quelle
Vielleicht, statt eine Frist zu setzen, können Sie den Papierkorb automatisch die ältesten Einträge gelöscht werden, wenn eine bestimmte Größe Grenze erreicht ist? Wäre das akzeptabel?
William Jackson
3
@ WilliamJackson Das kann eine Lösung für diejenigen sein, die begrenzten Festplattenspeicher haben. In meinem Fall möchte ich jedoch sicherstellen, dass ich das Leeren der Recycling-Datei nicht bereue, da eine kürzlich gelöschte Datei verloren gegangen ist. Mit diesem System vergesse ich nur den Papierkorb, er leert sich automatisch und ich habe genügend Zeit, um eine gelöschte Datei wiederherzustellen, wenn ich sie später bereue.
hkBattousai
1
In der Gnu / Linux-Welt hat KDE diese Funktion und ich denke, sie ist großartig für die Benutzerfreundlichkeit. Warum sollte ich die Mülleimer-Dateien länger als 1 Monat aufbewahren? Diese Methode überfrachtet Ihren Papierkorb nicht mit alten Dateien, die für Sie nicht mehr relevant sind. Es ist also viel einfacher, eine oder mehrere Dateien bei Bedarf zu finden und wiederherzustellen (sehr nützlich, wenn Sie viel mit Text arbeiten Dateien, die immer klein sind), und verschwenden Sie keinen Speicherplatz mit Dateien, die für Sie nicht mehr nützlich sind.
Gerlos
Es ist kein Explorer-Add-On und es sind nur 24 Stunden, aber CCleaner hat diese Option i.imgur.com/JaeJhzU.png
Matthew Lock

Antworten:

9

RecycleBinEx ist eine einfache Anwendung für Windows, die genau das tut, was Sie verlangen. Siehe: http://www.fcleaner.com/recyclebinex

Unter Mac OS X macht Hazel (unter anderem) dasselbe: http://www.noodlesoft.com/

KDE Plasma bietet diese Funktion standardmäßig an . Wenn Sie also Kubuntu, Arch, Chackra Linux oder eine andere Distribution mit KDE ausführen, verfügen Sie bereits über diese Funktion. Schauen Sie sich einfach das Dolphin-Konfigurationsfenster an.

In Ubuntu Unity, Gnome oder jeder anderen GNU / Linux-Desktop-Umgebung, die eine standardmäßige FreeDesktop.org-Papierkorbfunktion bietet, können Sie AutoTrash verwenden, um Folgendes auszuführen : http://www.logfish.net/pr/autotrash/
Ähnliches Verhalten kann auch erzielt werden mit trash-cli kann dies auch verwendet werden, um dateien direkt von der befehlszeile in den mülleimer zu verschieben. Siehe: https://github.com/andreafrancia/trash-cli

Die meisten E-Mail-Apps haben diese Funktion auch für ihren "Papierkorb".

Unter Android gibt es standardmäßig keinen "Papierkorb" (wenn Sie ihn löschen, ist er für immer verschwunden), aber Sie können Apps wie Dumpster installieren, um (irgendwie) ähnliche Funktionen zu erhalten: http://www.dumpsterapp.mobi/

Wie oben erwähnt, ist das automatische Entfernen alter Dateien aus dem Papierkorb eine großartige Funktion , um die Benutzerfreundlichkeit zu verbessern , da es das Durcheinander verringert Datei?) und macht es einfacher zu finden, was Sie wiederherstellen möchten (dies ist schließlich der Grund dafür, dass auf unseren Computern ein "Papierkorb" vorhanden ist), der dennoch sicher ist.

Es ist sogar noch nützlicher, wenn Sie viel mit Textdateien (Code oder Prosa) arbeiten, die meistens klein sind und nicht viel Platz benötigen (so dass Ihre Papierkorbquote möglicherweise nie erreicht wird). Auf diese Weise müssen Sie nicht einmal in regelmäßigen Abständen "Ihren Mülleimer leeren". Sie wissen nur, dass Sie ein Zeitfenster haben, um Ihre "verworfenen" Dateien wiederherzustellen, falls dies erforderlich ist.

Bei den meisten Cloud-Diensten (Dropbox, Google Drive, Simplenote, ...) scheint eine ähnliche Richtlinie für gelöschte Dateien zu gelten. Ich denke wirklich, dass es das Richtige ist, mit Ihren Dateien umzugehen, und das scheint auch so zu sein.

gerlos
quelle
1
Ich benutze diese Software, seitdem Sie Ihre Antwort hier gepostet haben. Es ist ziemlich gut. Ich bin damit zufrieden Ich empfehle es. Genau das habe ich gesucht. Danke für deine Antwort.
hkBattousai
1
Eine nette Ergänzung zu dieser Liste ist trash-cliein Kommandozeilen-Papierkorb-Tool autotrash, mit dem Sie Dateien auch von der Kommandozeile aus in den Papierkorb werfen können. Siehe webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html und github.com/andreafrancia/trash-cli
gerlos
Funktioniert RecycleBinEx unter Windows 10? Es scheint keine Standardfunktion zu sein, die in Windows 10 angeboten wird.
still_dreaming_1
1
@ still_dreaming_1 Das letzte Mal, als ich es versuchte (vor einigen Monaten), RecycleBinExschien unter Windows 10 zu funktionieren. Ich verwende es jedoch nicht als mein Hauptsystem , daher kann ich nicht feststellen, ob es bei den letzten Aktualisierungen des Systems immer noch funktioniert.
Gerlos
1
Ich habe gerade RecycleBinEx unter Windows 10 ausprobiert. Die grafische Benutzeroberfläche weist ein merkwürdiges Verhalten auf. Einige Dateien im Papierkorb werden mit Dateinamen aus einem Zeichen angezeigt. Die Befehlszeilenoption zum Entfernen von Dateien, die älter als X Tage sind, scheint jedoch in Ordnung zu sein. Geben Sie "RecycleBinEx.exe /?" Ein, um die Befehlszeilenoptionen anzuzeigen. an der Befehlszeile.
Aaron
17

Ich kenne keine Explorer-Add-Ons, aber wie die meisten Dinge in Windows kann dies mit PowerShell durchgeführt werden:

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
}

Speichern Sie dieses Skript als Textdatei mit einer .ps1Erweiterung. Mit dem Taskplaner können Sie dies dann in regelmäßigen Abständen ausführen.

Zunächst müssen Sie jedoch die Ausführung von PowerShell-Skripten zulassen, da Sie standardmäßig nur Befehle ausführen können, die direkt in die PowerShell-Eingabeaufforderung eingegeben wurden. Öffnen Sie dazu PowerShell und geben Sie den folgenden Befehl ein:

Set-ExecutionPolicy RemoteSigned

Geben Sie "y" oder "yes" ein, wenn Sie dazu aufgefordert werden. Sehen Sie Get-Help Set-ExecutionPolicyfür weitere Informationen.

Öffnen Sie nun den Taskplaner und legen Sie eine neue Aufgabe mit folgenden Parametern an:

  1. Geben Sie auf der Registerkarte "Allgemein" einen Namen ein und aktivieren Sie die Option "Mit höchsten Berechtigungen ausführen"
  2. Fügen Sie auf der Registerkarte "Trigger" einen neuen Trigger hinzu und legen Sie fest, dass die Aufgabe täglich ausgeführt wird
  3. Fügen Sie auf der Registerkarte "Aktionen" eine neue Aktion hinzu:
    • belassen Sie den Typ als "Programm starten"
    • Setzen Sie das Feld "Programm / Skript" auf C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • Setzen Sie das Feld "Argumente hinzufügen" auf -NonInteractive -File "C:\path\to\script.ps1"
  4. Deaktivieren Sie auf der Registerkarte "Bedingungen" die Option "Task nur starten, wenn der Computer mit Strom versorgt wird".

Zeilenweise Erklärung des Skripts:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {

Dies ruft eine Liste aller Laufwerke im Computer ab und durchläuft sie nacheinander. Der -PSProvider FileSystemParameter ist nur erforderlich, um Festplattenlaufwerke zurückzugeben, da PowerShell auch Pseudodrives für verschiedene andere Dinge wie Registrierungsstrukturen enthält.

Weitere Informationen finden Sie unter Get-Help Get-PSDriveund in diesem Lernprogramm zur Schleifenverarbeitung in PowerShell .

$Path = $Drive.Name + ':\$Recycle.Bin'

Dadurch wird der Pfad zum Papierkorbordner auf dem aktuellen Laufwerk erstellt. Beachten Sie die Verwendung von einfachen Anführungszeichen um den zweiten Teil, um zu verhindern, dass PowerShell $Recycleals Variable interpretiert wird.

Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |

Dies gibt alle Dateien und Unterordner unter dem angegebenen Pfad zurück (dem Pfad, den wir mit dem vorherigen Befehl erstellt haben). Der -ForceParameter wird benötigt, um in versteckte und Systemordner zu gelangen, und der -RecurseParameter macht den Befehl rekursiv, dh. Durchlaufen Sie auch alle Unterverzeichnisse. -ErrorActionist ein Standardparameter für die meisten PowerShell-Befehle, und der Wert bewirkt, SilentlyContinuedass der Befehl Fehler ignoriert. Dies dient dazu, Fehler für Laufwerke zu vermeiden, die so konfiguriert wurden, dass sie Dateien sofort löschen. Das |Symbol ganz am Ende leitet die Ergebnisse an den nächsten Befehl weiter. Ich habe es zur besseren Lesbarkeit in mehrere Zeilen aufgeteilt.

Weitere Informationen finden Sie unter Get-Help Get-ChildItem.

Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |

Dies filtert einfach die Ergebnisse des vorherigen Befehls und gibt nur diejenigen zurück, die älter als 30 Tage sind. $_bezieht sich auf das Objekt, das gerade verarbeitet wird, und die LastWriteTimeEigenschaft bezieht sich in diesem Fall auf das Datum und die Uhrzeit, zu der die Datei gelöscht wurde. Get-DateGibt das aktuelle Datum zurück.

Weitere Informationen finden Sie unter Get-Help Where-Objectund Get-Help Get-Date.

Remove-Item -Recurse

Dadurch werden einfach die Elemente gelöscht, die vom vorherigen Befehl übergeben wurden. Der -RecurseParameter löscht automatisch den Inhalt nicht leerer Unterordner. Ohne diese Option werden Sie zur Eingabe solcher Ordner aufgefordert.

Weitere Informationen finden Sie unter Get-Help Remove-Item.

Indrek
quelle
Ich habe es aufgesetzt. Vielen Dank für die ausführliche Erklärung.
hkBattousai
3
: Alternativ zu global die Ausführungsrichtlinie festlegen, können Sie eine Befehlszeile, setzt es für den Prozess erstellen powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1.
jpmc26
Der Papierkorb in der Explorer-Detailansicht hat eine spezielle Spalte: "Datum gelöscht". Ich frage mich, wie wir stattdessen mit dieser Spalte filtern können. LastWriteTime ist keineswegs dasselbe.
Ciantic
Sprach zu früh, fand dies: baldwin-ps.blogspot.fi/2013/07/… es hat ein "Datum gelöscht" auch drin.
Ciantic
4

Der Windows-Papierkorb löscht ältere Dateien automatisch, wenn die maximale Größe erreicht ist: Was passiert, wenn der Papierkorb den zugewiesenen Speicherplatz belegt?

Sie können dies über die Eigenschaften des Papierkorbs steuern

Bildbeschreibung hier eingeben

Matthew Lock
quelle
1
Diese Antwort beantwortet die Frage nicht, da bei diesem Mechanismus das spezifische Alter der Dateien nicht berücksichtigt wird. Es werden nur die ältesten Dateien beliebigen Alters gelöscht, um ein voreingestelltes Datenvolumen beizubehalten.
Jonathan J