epicenter
Goto Top

Aus Textfile erste Zeile in Variable schreiben und diese auf Schlagwort untersuchen

Hallo zusammen!
Ich habe ein kleines Problem und komme nicht mehr weiter! Ich habe ein Textfile von welchem ich nur die erste Zeile benötige! Daher wollte ich diese erste Zeile in eine Variable speichern um diese danach auf ein Schlagwort mit "findstr" untersuchen zu lassen. Wird das Schlagwort gefunden soll einfach ein Status z.B. "gefunden" oder "nichtgefunden" in ein weiteres Textfile geschrieben werden!
Hat jemand von Euch eine Idee wie man das umsetzen könnte?
Vielen Dank!
Martin

Content-Key: 195294

Url: https://administrator.de/contentid/195294

Printed on: April 19, 2024 at 08:04 o'clock

Member: Friemler
Friemler Dec 03, 2012 at 22:50:11 (UTC)
Goto Top
Hallo Martin,

das könnte so gehen:
@echo off & setlocal

set "InFile=Eingabedatei"  
set "OutFile=Ausgabedatei"  
set "SearchString=Suchbegriff"  

set /p "FirstLine=" < "%InFile%"  

set /p "=%FirstLine%" < NUL | findstr /i "%SearchString%" > NUL && (  
  >"%OutFile%" echo Gefunden  
) || (
  >"%OutFile%" echo Nicht gefunden  
)

  • Die Variablen in den Zeilen 3 bis 5 bitte anpassen.
  • Falls Groß-/Kleinschreibung beachtet werden soll, bitte den Parameter /i beim FINDSTR-Befehl in Zeile 9 entfernen.
  • Die Ausgabedatei wird jedesmal überschrieben. Um die Ausgabe nur anzuhängen das >-Zeichen in den Zeilen 10 und 12 jeweils durch >> ersetzen.

Gruß
Friemler
Member: EPICENTER
EPICENTER Dec 04, 2012 at 00:07:28 (UTC)
Goto Top
Danke für die schnelle Antwort - die erste Zeile bekommt er damit sauber!
Doch bei der Auswertung bleibt er noch irgendwie hängen!
Habs dann über die Errorlevel versucht - doch auch gescheitert!
Noch nen Tipp?
Member: pieh-ejdsch
pieh-ejdsch Dec 04, 2012 at 10:57:30 (UTC)
Goto Top
moin EPICENTER,

eine Alternative wäre in etwa als Test auf der CMD-Line mit verzögerter Variablenauflösung:
> echo testZeichenfolge>Eingabedatei

> echo tesnull2>>Eingabedatei

> for /f "tokens=1-3 delims=/" %A in ("EingabeDatei/Ausgabe/testZeichenfolge") do @set /p L1=<"%~A" &cmd /von /c "echo !L1!"|find "%~C" &&echo Gefunden.>"%~B" ||echo Nicht gefunden!>"%~B"  
testZeichenfolge

> type ausgabe
Gefunden.

Gruß Phil