Dateien und Ordner bestimmten Alters löschen ausgenommen bestimmter Ordner Powershell oder Batch?

2 Antworten

Das ist prinzipiell gar kein Problem... allerdings ist es mit Vorsicht zu genießen, denn man muß höllisch aufpassen, wie man das Alter prüft!

Beispiel:

Man erstellt einen neuen Ordner am 01.01. und legt am 01.06. darin eine Datei ab. Am 01.08. will man jetzt alles (Dateien und Ordner) löschen, was älter als 6 Monate ist... dann würde ohne weitere Prüfmechanismen auch die erst 2 Monate alte Datei gelöscht, da sie sich innerhalb des Ordners befindet, der schon 8 Monate alt ist!

Solche Fälle kann (und sollte) man natürlich prüfen und abfangen!

Hinzu kommt, daß man nicht immer 100%-ig sicher sein kann, ob das Datum einer Datei oder eines Ordners auch wirklich (noch) stimmt. Je nach Situation kann es z. B. sein, daß ein Ordner ein neues Datum bekommt, wenn man ihn verschiebt, kopiert oder umbenennt.
Und welches Datum überhaupt?
Erstelldatum?
Änderungsdatum?
Datum des letzten Zugriffs?
Je nach Dateisystem (FAT32, NTFS, EXFAT, ReFS,...) gibt es mal mehr mal weniger davon... und man sollte sich sicher sein, daß man mit dem Skript o.ä. das richtige (gewollte/aussagekräftige) Datum prüft.

Mit der Behandlung von Ausnahmen (z. B. "Behalte alten Ordner, wenn darin neuere Dateien sind!") wird so ein Skript schnell umfangreich und unübersichtlich... und somit fehleranfällig.

Es gibt kleine Programme, die teilweise auch eine "Vorschau" erlauben, was gelöscht werden würde, sofern man die Rückfrage bestätigt.

Mir kommen grundsätzlich zum Thema "Löschen alter Dateien" folgende Tools ins Gedächtnis:
· FileKiller von it2move
· DelAge von Horst Schaeffer

Diese Tools waren "Hilfs-Tools" für die Eingabeaufforderung (also Batch-Dateien) und ich habe keine Ahnung, ob es sie noch gibt bzw. ob sie noch gepflegt und/oder angeboten werden. Eine Websuche wird aber sicherlich zumindest noch alte Kopien dieser Tools zutage fördern.

Auf welches Datum diese Tools sich beziehen (Erstelldatum, Änderungsdatum,...) und/oder ob man das im jeweiligen Tool sogar auswählen kann/muß, weiß ich auswendig leider gerade auch nicht.


3unknow3HD 
Fragesteller
 10.02.2021, 08:20

Alter der Dateien war gemeint, also Erstelldatum. Ich kann keine Tools verwenden. Wie es oben beschrieben ist, es sollte auf die Dateien kommen und wenn ein Ordner leer ist sollte dieser gelöscht werden, egal ob er älter ist oder nicht.

0

Das geht sicher mit Powershell , da mussich aber passen. Wie siehts mit bash Kenntnissen aus? Dann würde ich das entweder unter cygwin machen oder mit dem Windows 10 internen Ubuntu Terminal.