Variable mit *txt vergleichen (BATCH)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
findstr /m /c:"%suchtext%" "dateiname.txt" > NUL
if errorlevel 1 goto Falsch
if not errorlevel 1 goto lol

%suchtext% darf keine Anführungszeichen enthalten

("findstr" statt "findstr /m" geht auch, aber so ist es etwas schneller; "find " statt "findstr /m /c:" geht auch)

Du kannst auch die "Kurzform" bedingter Ausführung nehmen:

(findstr /m /c:"%suchtext%" "dateiname.txt" > NUL) && goto lol || goto Falsch

sowie natürlich ggf. überflüssige gotos entfernen

Woher ich das weiß:Berufserfahrung – Software-Entwickler

mit dem Type und dem Findstr Befehl, und einer Pipe.

zum beispiel so:

type "MeinPfad\Meine.txt" | findstr "%meinevariable%" 

if %errorlevel% == 0 (

goto lol

) else (

goto Falsch 

)


Ich hab den Code jetzt nicht getestet, aber so in etwa sollte es Funktionieren.

Wenn Findstr die variable im Output ( type ) deiner TXT findet, wird kein errorlevel gesetzt, weil der Befehl erfolgreich war, also wurde die variable gefunden. 

Wenn nicht, dann wird das was in else steht befolgt.

Die Pfade musst du natürlich umstellen ;P

lg