vendredi 11 janvier 2019

Batch String abschneiden in if-Condition

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.

Aucun commentaire:

Enregistrer un commentaire