Batch Bestimmten String aus Datei in Variable einlesen

Don.Juan

Cadet 4th Year
Registriert
Nov. 2010
Beiträge
107
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:



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!
 
Zurück
Oben