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 .ps1
Erweiterung. 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-ExecutionPolicy
für weitere Informationen.
Öffnen Sie nun den Taskplaner und legen Sie eine neue Aufgabe mit folgenden Parametern an:
- Geben Sie auf der Registerkarte "Allgemein" einen Namen ein und aktivieren Sie die Option "Mit höchsten Berechtigungen ausführen"
- Fügen Sie auf der Registerkarte "Trigger" einen neuen Trigger hinzu und legen Sie fest, dass die Aufgabe täglich ausgeführt wird
- 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"
- 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 FileSystem
Parameter 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-PSDrive
und 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 $Recycle
als 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 -Force
Parameter wird benötigt, um in versteckte und Systemordner zu gelangen, und der -Recurse
Parameter macht den Befehl rekursiv, dh. Durchlaufen Sie auch alle Unterverzeichnisse. -ErrorAction
ist ein Standardparameter für die meisten PowerShell-Befehle, und der Wert bewirkt, SilentlyContinue
dass 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 LastWriteTime
Eigenschaft bezieht sich in diesem Fall auf das Datum und die Uhrzeit, zu der die Datei gelöscht wurde. Get-Date
Gibt das aktuelle Datum zurück.
Weitere Informationen finden Sie unter Get-Help Where-Object
und Get-Help Get-Date
.
Remove-Item -Recurse
Dadurch werden einfach die Elemente gelöscht, die vom vorherigen Befehl übergeben wurden. Der -Recurse
Parameter 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
.