Variable mit *txt vergleichen (BATCH)?
Ich möchte in einer Batch-Datei eine eingegebene Variable mit einem *txt Dokument vergleichen. Kommt das Geschriebene in der Datei vor, so soll zu Punkt :lol "gegangen" werden, wenn nicht zu :Falsch. Wie mache ich das?
2 Antworten
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
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