Hallo,
ich hänge heute schon den ganzen Tag an einer kleinen blöden Stelle fest und das Skript will nicht einfach das machen, was ich machen möchte !
Evtl. sieht ja einer den Fehler sofort und kann mir da weiterhelfen.
Szenario
Datei-Inhalt mit Strings:
ABCfoobar [einige Leerzeichen] DEFfoobar [einige Leerzeichen] GHIfoobar
Ich will in der Datei den String auslesen, welcher mit "DEF" beginnt......also würde ich in dem Fall gerne den gesamten String "DEFfoobar" in eine Variable einlesen in meinem Skript.
Mein kläglicher Versuch:
Das funktioniert leider so nicht. Sieht jemand meinen Fehler ?
So habe es selber nochmal probiert und eine Lösung dafür gefunden. Das grundsätzliche Problem bei For-Schleifen ist, dass sie sofort komplett expanden und man einen Kniff anwenden muss, um nur auf die "aktuelle Variable" zuzugreifen.
ich hänge heute schon den ganzen Tag an einer kleinen blöden Stelle fest und das Skript will nicht einfach das machen, was ich machen möchte !

Szenario
Datei-Inhalt mit Strings:
ABCfoobar [einige Leerzeichen] DEFfoobar [einige Leerzeichen] GHIfoobar
Ich will in der Datei den String auslesen, welcher mit "DEF" beginnt......also würde ich in dem Fall gerne den gesamten String "DEFfoobar" in eine Variable einlesen in meinem Skript.
Mein kläglicher Versuch:
Code:
for %%A in (%file%) do (
set var1="%%A"
if "%var1:~0,3%"=="DEF" (
set var2 = var1
)
)
Das funktioniert leider so nicht. Sieht jemand meinen Fehler ?

Ergänzung ()
So habe es selber nochmal probiert und eine Lösung dafür gefunden. Das grundsätzliche Problem bei For-Schleifen ist, dass sie sofort komplett expanden und man einen Kniff anwenden muss, um nur auf die "aktuelle Variable" zuzugreifen.
Code:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for %%a in (%file%) do (
set var1=%%a
set var2=!var1:~0,3!
echo !var2!
if "!var2!"=="DEF" (
echo !var1! "Found like a boss! ;)"
goto found
)
)
:: Dieser Sprung aus der For-Schleife dient nur dazu mit der Variable weiterzuarbeiten !
:found
echo !var1!