Wir stehen vor der Herausforderung, etwa X Millionen Dateien zu löschen, die bestimmte Kriterien erfüllen – insbesondere müssen sie älter als 90 Tage sein und bestimmte Dateiformate ausschließen. Bisher haben wir ein mehrfädiges Powershell-Skript verwendet, das zwar gut ist, aber immer noch nicht so schnell wie nötig, da unsere Aufnahmeprozesse mit hoher Geschwindigkeit neue Dateien erstellen.
Was kann ich tun, um das Löschen so vieler Dateien zu beschleunigen?
Antwort1
Agent Ransackist sehr schnell und unterstützt das Löschen von Dateien basierend auf dem Änderungsdatum.
Außerdem läuft es natürlich schneller, wenn Sie alle anderen auf dem Server laufenden Prozesse herunterfahren.
Antwort2
Powershell gilt als nicht besonders schnell. Möglicherweise forfiles
kann eine Batchdatei mit einem in Windows integrierten Befehl die Lösung sein.
Um alle Dateien auszuwählen und zu löschen, die älter als 90 Tage sind, können Sie etwas Ähnliches verwenden wie:
forfiles -p "C:\your\dir" /S /D -90 /C "cmd /c del @path"
Wenn dies weiterhin zu langsam ist, können Sie forfiles
zunächst eine Liste der zu löschenden Dateien erstellen und dann einen Batch-Entfernungsbefehl für alle Dateien in der Liste verwenden (dies kann die Anzahl der del
Aufrufe/Iterationen erheblich verringern).
Weitere Informationen und andere mehr oder weniger kreative Methoden zum Löschen von Dateien finden Sie unterHierUndHier