Hallo,
Hoffentlich kann mir jemand weiterhelfen. Ich bin blutiger Anfänger, wenn es um Batch-Skripte geht.
Worum es geht:
Ich will aus einer Datei "Datei.log" den vollständigen Inhalt einer Zeile in einer Variablen speichern. Der Anfang der Zeile ("Zeilenanfang") besteht aus zwei Worten, die durch ein Leerzeichen voneinander getrennt sind, und ist bekannt. Der Inhalt der Variablen soll dann an anderer Stelle zusammen mit einem Text ausgegeben werden.
Ich nutze
GNU grep. Ohne den Inhalt in einer Variablen zu speichern, funktioniert das Ganze mit:
Code:
grep -U "Zeilenanfang" Datei.log
ohne Probleme. In der CMD wird der vollständige Inhalt (es sind auch Leerzeichen, Kommas und Punkte enthalten) der Zeile ausgegeben.
Woran ich aber kläglich scheitere, ist dann die Speicherung in einer Variablen. Was ich bisher gefunden habe:
Code:
@echo off
for /F "usebackq" %%I in (`grep -U "Zeilenanfang" Datei.log`) do set Var1=%%I
echo In der Zeile steht: %Var1%
Da wird mir dann aber nur das erste Wort meines Such-Strings "Zeilenanfang" ausgegeben.
Wenn das funktioniert will ich die Ausgabe in eine andere Datei umleiten. Also in etwas so:
Code:
@echo off
for /F "usebackq" %%I in (`grep -U "Zeilenanfang" Datei.log`) do set Var1=%%I
echo In der Zeile steht: %Var1% >> Datei2.rt
Was mache ich falsch? Mein Hauptproblem ist halt, dass bei der Übergabe an die Variable lediglich alle Zeichen bis zum ersten Leerzeichen übergeben werden.
Hat jemand einen anderen Vorschlag, wie ich per Batch das gewünschte Ergebnis erhalte?
Vielen Dank im Voraus.