Dateinamen ermitteln und in eine Variable innerhalb der Batch schreiben (For-Schleife)
Ich wünsche einen guten Abend und schon einmal vielen Dank im Voraus für mögliche Unterstützungen!
Da mich die Informationen hier und in diversen WiKis fast bis an´s Ziel gebracht haben,
aber ich nun nicht mehr weiterkomme schreibe ich diesen Thread in der Hoffnung auf "Erleuchtung".
Die Ausgangssituation:
Ich habe ein Verzeichnis in dem jede Nacht eine neue Log-Datei erzeugt wird, z.B.
Logfile 04.08.2014 - 22-06 Uhr (BenutzerXY).log
Logfile 05.08.2014 - 21-47 Uhr (BenutzerAB).log
Logfile 06.08.2014 - 22-34 Uhr (BenutzerJK).log
Der Pfad zu dem Verzeichnis in meinem Codeschnipsel unten lautet:
\\server\Backup-Logs\999X\Chef-PC\2014
Zur Auswertung der Logdatei muß täglich ich den genauen Namen der Datei ermitteln,
da Uhrzeit und Benutzername nicht konstant sind.
Wenn die For-Schleife in meinem Skript sich nun in dem zusammengesetzten Verzeichnispfad alle *.log-Dateien vornimmt,
dann findet sie auch die Datei die zum heutigen Datum passt, aber an die Variable %logfile% wird nicht der komplette
Dateiname sondern nur das Wort Logfile übergeben.
Kann dieses Verhalten evtl. mit den Leerzeichen im Dateinamen zusammenhängen und falls ja wie bekomme ich das
in den Griff? Die Dateinamen der Logdatei kann ich nicht beeinflussen.
Da mich die Informationen hier und in diversen WiKis fast bis an´s Ziel gebracht haben,
aber ich nun nicht mehr weiterkomme schreibe ich diesen Thread in der Hoffnung auf "Erleuchtung".
Die Ausgangssituation:
Ich habe ein Verzeichnis in dem jede Nacht eine neue Log-Datei erzeugt wird, z.B.
Logfile 04.08.2014 - 22-06 Uhr (BenutzerXY).log
Logfile 05.08.2014 - 21-47 Uhr (BenutzerAB).log
Logfile 06.08.2014 - 22-34 Uhr (BenutzerJK).log
Der Pfad zu dem Verzeichnis in meinem Codeschnipsel unten lautet:
\\server\Backup-Logs\999X\Chef-PC\2014
Zur Auswertung der Logdatei muß täglich ich den genauen Namen der Datei ermitteln,
da Uhrzeit und Benutzername nicht konstant sind.
set logfilehomepath=\\server\Backup-Logs
set KdNr=9999X
set PCname=Chef-PC
set logfilepath="%logfilehomepath%\%KdNr%\%PCname%\%date:~-4%\Logfile %date:~0% - *.log"
REM Variable logfile definieren
set logfile=keine Logdatei zum heutigen Datum vorhanden
For /F %%i in ('dir /B %logfilepath%') do set logfile=%%~i
@echo %logfile%
pause
Wenn die For-Schleife in meinem Skript sich nun in dem zusammengesetzten Verzeichnispfad alle *.log-Dateien vornimmt,
dann findet sie auch die Datei die zum heutigen Datum passt, aber an die Variable %logfile% wird nicht der komplette
Dateiname sondern nur das Wort Logfile übergeben.
Kann dieses Verhalten evtl. mit den Leerzeichen im Dateinamen zusammenhängen und falls ja wie bekomme ich das
in den Griff? Die Dateinamen der Logdatei kann ich nicht beeinflussen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 245767
Url: https://administrator.de/contentid/245767
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Vorlon,
vesuche mal folgende Änderung der
Siehe auch mein Tutorial zur FOR-Schleife.
Gruß
Friemler
vesuche mal folgende Änderung der
FOR
-Schleife:for /f "delims=" %%i in ('dir /b "%logfilepath%"') do set "logfile=%%~i"
Siehe auch mein Tutorial zur FOR-Schleife.
Gruß
Friemler