atphoenix
Goto Top

Sobald mehr als 3 Dateien in einem Ordner sind, erste Datei löschen

Hallo zusammen,

ich bin ein totaler Neuling im Bereich Batch und darum wollte ich hier mal fragen ob ihr mir vielleicht helfen könnt.
Ich benötige für meine Access Datenbank eine Batch-Datei die selbstständig Backups nach dem schließen der Datenbank erstellt. Das mit dem Backup erstellen hab ich schon hinbekommen, jetzt haperts aber nur noch daran, dass ich nicht unendlich viele Backups haben möchte.
Darum wollte ich mal fragen, ob es möglich ist eine Batch-Routine zu schreiben die sobald mehr als 3 Dateien in einem Ordner sind, die Datei an der 1. Position löscht. Da ich wirklich nicht viel Ahnung von Batch habe, wäre ich euch sehr dankbar, wenn ihr mir da helfen könntet.


MfG
Alex

Content-Key: 104484

Url: https://administrator.de/contentid/104484

Printed on: April 19, 2024 at 22:04 o'clock

Member: bastla
bastla Dec 19, 2008, updated at Oct 18, 2012 at 16:36:42 (UTC)
Goto Top
Hallo atphoenix und willkommen im Forum!

Wenn ich Deine Aufgabenstellung etwas umformuliere, könnte die Anweisung lauten: "Lösche alle Dateien (eines bestimmten Typs) außer den drei jüngsten" - und derartiges (allerdings mit etwas mehr als 3 Dateien) hatten wir etwa hier ...

Grüße
bastla
Mitglied: 60730
60730 Dec 19, 2008 at 17:40:08 (UTC)
Goto Top
Servus,

auch wenn Bastla deine Anforderung schon "verbessert" hat - stelle ich trotzdem dein Vorhaben als solches in Frage.

Ein Backup von einer Access DB ist schön und gut, aber dann auf diesen Komfort zu vrezichten und nur noch auf 3 Zustände zurückgreifen zu können, wäre mir perönlich dann das ganze schreiben der Backuplösung nicht wert.

Von daher mein Tipp - wenn das Tabelleninhalte sind, die kannst du wunderbar "klein" machen, ohne Ihren nhalt zu verlieren,

Von daher besorg dir 7Zip und arbeite <b>7za <b>in dein bestehendes Script mit ein.
Dann das ganze noch mit einer Dateinamen & Ordnerstruktur versehen, aus der das jeweilige Datum ersichtlich ist - fertig ist der Lack.

Ps: Die fett geschrieben Worte sind deine Stichwörter für die Suchfunktion.

Gruß
Member: atphoenix
atphoenix Dec 19, 2008 at 18:56:01 (UTC)
Goto Top
@bastla ich danke dir für den link, den werd ich nacher gleich mal anschauen und ausprobieren

@timobeil naja ich Backupe die ganze DB also mit Front und Backend, diese Vorgehensweise ist nich meine Idee die wünsch mein Prof so... Da es sich bei der Datenbank um eine Studienarbeit handelt, sollte ich da auf die Wünsche meines Profs eingehen und der wünscht halt u.a. nur 3 Backups der kompletten DB zu behalten, ob das sinnvoll ist oder nicht, will ich mal dahin gestellt lassen...

MfG
Alex
Member: Devian
Devian Dec 19, 2008 at 21:17:30 (UTC)
Goto Top
deldate könnte dir in Verbindung mit dem Taskplaner hilfreich sein.
Member: atphoenix
atphoenix Dec 20, 2008 at 00:16:32 (UTC)
Goto Top
Ich hätte jetzt noch 2 Fragen bezüglich der Code Zeile.

Wie kann ich da Dateien löschen die sich in einem anderen Verzeichnis befinden als in dem wo sich die Batch-Datei befindet ?

Wie kann ich einen Ordner löschen in dem sich die einzelnen Backups befinden?

Vielen Dank schon mal für deine Hilfe

MfG
Alex
Member: Biber
Biber Dec 20, 2008 at 00:58:49 (UTC)
Goto Top
Moin alphoenix,

Frage 1)
for /f "skip=3 delims=" %%i in ('dir d:\MDBBackup\*.* /b /o-d /a-d') do @echo del "d:\MDBBackup\%%i"  
Frage 2)
Ordner löschen mit dem Befehl RD. Siehe RD /? am CMD-Prompt.

Grüße
Biber
Member: atphoenix
atphoenix Dec 20, 2008 at 10:09:08 (UTC)
Goto Top
Moin Biber, danke für die Antwort.

Ich seh gerade ich hab mich da etwas unklar ausgedrückt, ich wollte mit der Befehlszeile Ordner + deren Inhalt löschen und nicht nur Dateien. Wie man so einen ordner löscht, weiß ich :D

MfG
Alex
Member: bastla
bastla Dec 20, 2008 at 10:57:52 (UTC)
Goto Top
Hallo atphoenix!

Dann analog:
for /f "skip=3 delims=" %%i in ('dir d:\MDBBackup /b /o-d /ad') do @echo rd /s /q "d:\MDBBackup\%%i"
Grüße
bastla
Member: atphoenix
atphoenix Dec 21, 2008 at 00:49:08 (UTC)
Goto Top
Hallo bastla, ich danke dir vielmals für deine Hilfe.

MfG
Alex