ich bin gerade dabei eine Batch Datei zu erstellen, die folgendes tun soll:
Auf dem PC liegen Logfiles, welche nach dem Muster XXXXXX.yyyy-mm-dd.log bezeichnet sind - Diese unterscheiden sich lediglich durch die Angabe yyy-mm-dd. Ich möchte immer den vorletzten Monat komplett löschen. Hier ein Auszug aus meinem Skript:
...
set /A delmonat = %monat%
set /A deljahr = %jahr%
for /f "delims=" %%a in ('dir /b /A-D ^| findstr /r "^XXXXXX.....-..-.." 2^>nul') DO (
if "%%a:~0,-6" EQU "XXXXXX.%deljahr%-%delmonat%" (del /q "%%a")
)
Er soll die jeweils ausgelesene Datei durch die Anweisung "%%a:~0,-6" von rechts um sechs Stellen kürzen und danach mit dem String "XXXXXX.%deljahr%-%delmonat%" vergleichen.
Aber er versteht die Anweisung "%%a:~0,-6" irgendwie nicht. Er vergleicht nun "XXXXXX.yyyy-mm-dd.log:~0,-6" mit "XXXXXX.%deljahr%-%delmonat%".
Wie erreiche ich es, dass in der If-Bedingung gleich der String abgeschnitten wird und mit der rechten Seite anschließend verglichen wird?
Vielen Dank für eure Hilfe.