Gerade wenn Verzeichnisse und Dateien automatisiert werden, sammelt sich in kürzester Zeit ein sehr großer Datenhaufen an. In den meisten Fällen können viele dieser Daten nach einer bestimmten Zeit wieder gelöscht werden. Da bietet es sich an, dies ebenfalls zu automatisieren. Eine Realisierung kann sehr einfach per Windows Batch durchgeführt werden. Hierfür gibt es eine einfache Möglichkeit: FORFILES.

Zur Veranschaulichung ein Beispiel:

pushd D:\drop\Nightly
FORFILES /m dir0815*.* /D -5 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"
popd

IF %ERRORLEVEL% LSS 2 goto finish
EXIT /B %ERRORLEVEL%

:finish
EXIT /B 0

Was passiert hier? Zuerst wird das Arbeitsverzeichnis gesetzt, danach werden mittels FORFILES alle Dateien nach dem Pattern (siehe /m) ermittelt, die älter als 5 Tage (siehe /D -5) sind und an das via /C angegebene Command übergeben.

Anschließend wird das Arbeitsverzeichnis zurückgesetzt und die Errorlevel geprüft. FORFILES gibt einen Errorlevel von 0 zurück wenn Dateien gefunden und verarbeitet wurden. 1 wird zurückgeliefert, wenn keine Dateien für das angegebene Muster bzw. für den Zeitraum zu finden sind. Nachdem ich dies in einem Buildsystem verwende, möchte ich auch in diesem Fall, dass mein Build als fehlerfrei markiert wird. Wird ein anderer Errorlevel als 0 oder 1 gefunden, muss natürlich abgebrochen werden.

Viel Spaß beim anwenden!

Veröffentlicht von Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen