Benötige Hilfe beim löschen der Ältesten Verzeichnis-Inhaltes
Hallo ich benötige eure Hilfe bei einem Problem.
Ich bin derzeit eine Batch-Datei am schreiben die die Älteste Datei des Verzeichnisses Löscht sobald Sie die 31Datei im Verzeichnis wäre, d.H.
Sobald ein Limit von 30Dateien erreicht ist soll immer die Älteste Gelöscht werden.
Soweit so gut.
Ich hoffe ihr könnt mir weiterhelfen
Liebe Grüße Daniel
Ich bin derzeit eine Batch-Datei am schreiben die die Älteste Datei des Verzeichnisses Löscht sobald Sie die 31Datei im Verzeichnis wäre, d.H.
Sobald ein Limit von 30Dateien erreicht ist soll immer die Älteste Gelöscht werden.
Soweit so gut.
Ich hoffe ihr könnt mir weiterhelfen
Liebe Grüße Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188643
Url: https://administrator.de/forum/benoetige-hilfe-beim-loeschen-der-aeltesten-verzeichnis-inhaltes-188643.html
Ausgedruckt am: 22.04.2025 um 16:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo Daniel0-S und willkommen im Forum!
Ob Dir wohl zB dieser Beitrag bei Deiner Suche entgangen ist?
Grüße
bastla
Ob Dir wohl zB dieser Beitrag bei Deiner Suche entgangen ist?
Grüße
bastla
Hallo Daniel0-S!
Soferne ich Dein Vorhaben richtig interpretiere, soll die einzige *.txt-Datei, die es im Ordner "C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis" gibt, (einmal am Tag) mit dem Namenszusatzz "_JJJJ_MM_TT" versehen und in den Unterordner "Archiv" verschoben werden. In diesem Unterordner sollen danach nur die jüngsten 30 *.txt-Dateien verbleiben.
Falls das so gemeint ist (mit einer Beschreibung hast Du Dich ja sehr zurückgehalten
), dann etwa:
Falls der Batch unbeaufsichtigt ausgeführt werden soll, wäre einerseits "
Grüße
bastla
P.S.:
Soferne ich Dein Vorhaben richtig interpretiere, soll die einzige *.txt-Datei, die es im Ordner "C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis" gibt, (einmal am Tag) mit dem Namenszusatzz "_JJJJ_MM_TT" versehen und in den Unterordner "Archiv" verschoben werden. In diesem Unterordner sollen danach nur die jüngsten 30 *.txt-Dateien verbleiben.
Falls das so gemeint ist (mit einer Beschreibung hast Du Dich ja sehr zurückgehalten
@echo off & setlocal
set "Ordner=C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis"
set /a Anzahl=30
set "Archiv=%Ordner%\Archiv"
REM Aktuelles Datum wird gesetzt:
set "jahr=%date:~-4%"
set "monat=%date:~-7,2%"
set "tag=%date:~-10,2%"
md "%Archiv%" 2>nul
for %%i in ("%Ordner%\*.txt") do move /-Y "%%i" "%Archiv%\ROLF_TESTDATEN_%jahr%_%monat%_%tag%.txt"
REM Hier wird die älteste Datei immer gelöscht sobald der Ordner mehr als 30 Dateien enthaelt.
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Archiv%\*.txt" 2^>nul') do del "%Archiv%\%%i"
PAUSE
PASUE
" entbehrlich und andererseits noch eine Entscheidung zu treffen, was bei mehr als einer Textdatei im "Verzeichnis" passieren sollte (mit "move /-Y
" wird noch nach dem Überschreiben gefragt - ein "move
" alleine würde der Reihe nach alle Textdateien verschieben und dabei kommentarlos schon bestehende Dateien ersetzen ...Grüße
bastla
P.S.:
alle dort genannten Beispiele bzw. Lösungsvorschläge funktionieren nicht wirklich.
ist vielleicht eher vor dem Hintergrund zu sehen, dass dort zB nicht... "skip=%Anzahl%" "delims=" ...
steht ...