Batch Datei automatisch jeden Tag ausführen lassen

ArrorRT

Lieutenant
Registriert
Jan. 2021
Beiträge
847
Hallo alle zusammen,

Erstmal zur Erklärung, ich habe eine Batch Datei zum Sichern einer VirtualBox VM, zum einen legt diese Ordner an, in der die Sicherungen sind, das an sich sehr gut ist, aber um Speicherplatz zu sparen, möchte ich nur 2 Backups haben. Also soll sozusagen das dritte und älteste automatisch gelöscht werden, daher meine Frage wie dieser Befehl lautet?

Frage Nummer 2, wie kann ich ebenen diese Datei jeden Tag um sagen wir 3 Uhr Nachts ausführen lassen?


Da habe ich die Batch gefundenen
 
1. Sind das backups die alle 24 stunden sind oder in welchem abstand sind die backups?
Beispiel für dateien die älter als 30 tage sind.
ForFiles /p "folder-path" /s /d -30 /c "cmd /c del /q @file"

2. Über die Aufgabenplanung, einfach einen neuen Task erstellen und ihm sagen das er ab sofort 1x am Tag ausgeführt werden soll.

1663756642762.png
 
@CrazyT genau ich möchte alle 24 Stunden ein Backup machen, um möglichst wenig Datenverlust zu haben.

Ah okay danke
 
Beim Erstellen der Aufgabe den Reiter 'Einstellungen' checken, standardmäßig wird die Aufgabe nach 3 Tagen beendet. Der Haken muß weg.

Hat mich bei meinem Server gewundert, hat etwas gedauert, bis ich die Einstellung gefunden habe.
 
Okay alles klar, aber geht es nicht theoretisch, auch wenn man angibt das Backup bzw. Ordner gelöscht werden sollen, die älter als 30 Stunden sind?

Dann bleibt das letzte erhalten und das neue kann kommen
Ergänzung ()

@mae1cum77 oh Mann, danke, das wäre schiefgegangen xD
 
  • Gefällt mir
Reaktionen: mae1cum77
ArrorRT schrieb:
Okay alles klar, aber geht es nicht theoretisch, auch wenn man angibt das Backup bzw. Ordner gelöscht werden sollen, die älter als 30 Stunden sind?

Das kann ich dir leider nicht sagen da "/d" für änderungsdatum steht in tagen .


Ansonsten mal bei cmd "forfiles /?" eingeben und gucken ob du dir da was bauen kannst :)
Hier sogar mal eine Anleitung die es sogar mit der aufgabenplanung zeigt

Ganz unten ist auch ein beispiel für powershell, evtl. kann man da ja über stunden was ausrichten!
Get-ChildItem "%userprofile%\Downloads" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))}| Remove-Item
Weiß aber jetzt nicht ob man anstelle .AddDays auch .AddHours oder so nehmen kann oder halt .AddSeconds und dann halt rechnen :D
 
Zuletzt bearbeitet:
ArrorRT schrieb:
das wäre schiefgegangen xD
Frage mich, was MS sich dabei gedacht hat (wenn überhaupt). Vielleich glauben die nicht ihr System läuft solange durch.
 
@CrazyT okay schaue ich mir an, danke :-)

@mae1cum77 naja gedacht werden sie sich nicht viel haben 😅.
Ich habe ein Windows Server System das sollte schon etwas länger als 3 Tage durchhalten xD
 
  • Gefällt mir
Reaktionen: mae1cum77
@CrazyT also mit PowerShell klappt es, nur verschiebt das Script es leider in den Papierkorb und das ist suboptimal, da die C Platte nicht genug Speicher hat.
Kann ich das irgendwie verhindern?
 
Dass die Dateien im Papierkorb landen, hat nichts mit PowerShell zu tun, sondern liegt an der Einstellung des Papierkorbs.

Man kann es über die Eigenschaften des Papierkorbs (rechte Maustaste -> Eigenschaften) ändern, in dem man den Haken bei "Dateien sofort löschen ...") setzt.
 
Dann füge dem Skript noch

Clear-RecycleBin -DriveLetter "C" -Force

nach dem Löschen-Befehl an.

Ich habe das nicht getestet und weiß deshalb nicht, ob es funktioniert.
Da hilft nur, es einfach auszuprobieren.
 
  • Gefällt mir
Reaktionen: ArrorRT
Zurück
Oben