Powershell-Backup-Skript für den Thunderbird-Profilordner

Vor längerem habe ich mir bereits ein relativ simples Powershell-Skript für das Backup meines Thunderbird-Profilordners, inklusive aller meiner Mails die sich in diesem befinden, erstellt. Dieses Skript wird als geplanter Task bei jedem Rechnerstart ausgeführt:

Durch das Skript wird ein Backup-Ordner mit aktuellem Datum und Uhrzeit im Namen erstellt. Danach werden einfach alle Dateien aus dem Profilordner kopiert.

Damit man sich nicht um die Entsorgung zu alter Backups kümmern muss hatte ich mir noch folgende Abfrage in das Skript eingebaut:

Diese Abfrage sucht den ältesten Ordner aus den Backup-Ordnern, sofern 5 Backups oder mehr angelegt wurden und löscht den ältesten. Das Problem ist, dass dies leider nicht immer zuverlässig funktioniert. Anscheinend wird das Skript manchmal nicht vernünftig abgeschlossen, falls man Thunderbird zu kurz nach dem Rechnerstart ausführt. Dateien die im Zugriff sind können dann leider nicht kopiert werden und das Skript bleibt hängen. Damit wenigstens das Löschen einwandfrei funktioniert habe ich den Löschvorgang durch eine Do-While-Schleife While-Schleife ersetzt. Denn wenn die obige Abfrage nur selten ausgeführt wird bleiben immer mehr Ordner über, da ja bei jedem Ausführen maximal ein alter Ordner gelöscht wird. Im folgenden Fall werden solange Ordner gelöscht bis nur noch 4 Ordner übrig bleiben:

 

In meiner ersten überarbeiteten Version hatte ich hier eine Do-While-Schleife verwendet. Das Problem an dieser Schleife ist aber, dass der Löschvorgang mit dieser immer mindestens einmal durchgeführt wird, was natürlich nicht gewünscht ist. Somit würde sonst sofort nach der ersten Backup-Erstellung selbiges Backup wieder gelöscht werden.

Ich habe das Skript noch etwas kommentiert und man kann es hier downloaden:

 

 

Schreibe einen Kommentar