In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen
Hallo Leute,
das ist mein erster Post hier und ich möchte mich vorab schon dafür entschuldigen, wenn ich etwas falsch mache und bin für konstruktive Kritik und Tipps, die helfen meine Posts zu verbessern, dankbar.
Nun zu meiner Frage:
ich möchte wie im Titel schon beschrieben einen variablen Teil aus einem Dateinamen auslesen und in eine weitere Variable schreiben. In dem speziellen Fall möchte ich das Jahr aus dem Dateinamen "extrahieren" und in eine separate Variable schreiben.
Ich weiß aus einer vorherigen Abfrage, wie der Dateiname lautet und habe diesen in der Variable %filename% gespeichert.
Außerdem weiß ich durch vorangegangene Abfragen, welchen Zeichen ich "auslesen" muss.
Der Einfachkeithalber setze ich diese Variablen hier mal fest, also Filename, die Postion des Jahres und die Anzahl der Zeichen, die das Jahr hat.
Danach versuche ich mit
die 4 Zeichen rechts von der 7 Stelle in die Variable %year% zu schreiben, nur dass 7 und 4 eben auch Variablen sind.
Hier mein versuch, aber irgendwie läuft das nicht, ich vermute mal, dass das irgendwie mit den % zusammenhängt und habe da auch schon mehrere Varianten versucht...
Evtl. kann mir ja einer weiterhelfen.
Vielen Dank schon Mal
LG Daniel
das ist mein erster Post hier und ich möchte mich vorab schon dafür entschuldigen, wenn ich etwas falsch mache und bin für konstruktive Kritik und Tipps, die helfen meine Posts zu verbessern, dankbar.
Nun zu meiner Frage:
ich möchte wie im Titel schon beschrieben einen variablen Teil aus einem Dateinamen auslesen und in eine weitere Variable schreiben. In dem speziellen Fall möchte ich das Jahr aus dem Dateinamen "extrahieren" und in eine separate Variable schreiben.
Ich weiß aus einer vorherigen Abfrage, wie der Dateiname lautet und habe diesen in der Variable %filename% gespeichert.
Außerdem weiß ich durch vorangegangene Abfragen, welchen Zeichen ich "auslesen" muss.
Der Einfachkeithalber setze ich diese Variablen hier mal fest, also Filename, die Postion des Jahres und die Anzahl der Zeichen, die das Jahr hat.
Danach versuche ich mit
set year=%filename:~7,4%
Hier mein versuch, aber irgendwie läuft das nicht, ich vermute mal, dass das irgendwie mit den % zusammenhängt und habe da auch schon mehrere Varianten versucht...
set filename=03_MOV_20171224_121230.avi
set pos_year=7
set number_year=4
set year=%filename:~%pos_year%,%number_year%%
Evtl. kann mir ja einer weiterhelfen.
Vielen Dank schon Mal
LG Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 345285
Url: https://administrator.de/contentid/345285
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
5 Kommentare
Neuester Kommentar
Mit delayedExpansion
Oder auch mit Call Set möglich.
Würde aber lieber gleich zu Powershell und Regex greifen.
Gruß
setlocal enabledelayedexpansion
set "filename=03_MOV_20171224_121230.avi"
set pos_year=7
set number_year=4
set year=!filename:~%pos_year%,%number_year%!
set "filename=03_MOV_20171224_121230.avi"
set pos_year=7
set number_year=4
call set year=%filename:~%pos_year%,%number_year%%
Gruß
Zitat von @dh0815:
Hallo Nerofu,
Das hatte ich noch nicht versucht, wäre in jedem Fall ein interessanter Lösungsansatz. Jedoch hat mir der Post von exguru schon die Lösung gebracht.
Aber Danke für deine Antwort
Daniel
Die Lösung ist auch besser Hallo Nerofu,
Das hatte ich noch nicht versucht, wäre in jedem Fall ein interessanter Lösungsansatz. Jedoch hat mir der Post von exguru schon die Lösung gebracht.
Aber Danke für deine Antwort
Daniel
MFG,
Nero