Suchwert in einer Variable speichern
Hallo!
Wieder mal ein Batch-Problem:
ich habe eine Logdatei, in der ich nach dem Wort Fehler suchen möchte. Und das Gefundene würde ich gerne in eine Variable speichern.
Also in dieser Art:
Es wird mir zwar der gefundene Fehler auf der Shell ausgegeben, aber ich möchte diese Ausgabe gerne in einer Variablen für die weitere Verarbeitung zwischenspeichern.
Wie kann man das am besten lösen?
Danke
Hansi
Wieder mal ein Batch-Problem:
ich habe eine Logdatei, in der ich nach dem Wort Fehler suchen möchte. Und das Gefundene würde ich gerne in eine Variable speichern.
Also in dieser Art:
%Fehleranalyse% = TYPE "C:\temp\LOG.txt" | find /i "Fehler:"
Es wird mir zwar der gefundene Fehler auf der Shell ausgegeben, aber ich möchte diese Ausgabe gerne in einer Variablen für die weitere Verarbeitung zwischenspeichern.
Wie kann man das am besten lösen?
Danke
Hansi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 38090
Url: https://administrator.de/contentid/38090
Ausgedruckt am: 26.11.2024 um 16:11 Uhr
7 Kommentare
Neuester Kommentar
Hi Hansi,
du könntest das Ergebnis deines Filters in eine Datei speichern
TYPE "C:\temp\LOG.txt" | find /i "Fehler:" > dateiname
und dann mit for (siehe Hilfe für genaue Syntax) diese Datei im Bedarfsfall auslesen bzw. gleich die Variablen damit füllen und die Datei dann wieder löschen. In der Hilfe vom Windows sind da ganz brauchbare Beispiele enthalten, die den Umgang mit for gut beschreiben.
Sonst fällt mir dazu auch nix ein.
mfg Martin
du könntest das Ergebnis deines Filters in eine Datei speichern
TYPE "C:\temp\LOG.txt" | find /i "Fehler:" > dateiname
und dann mit for (siehe Hilfe für genaue Syntax) diese Datei im Bedarfsfall auslesen bzw. gleich die Variablen damit füllen und die Datei dann wieder löschen. In der Hilfe vom Windows sind da ganz brauchbare Beispiele enthalten, die den Umgang mit for gut beschreiben.
Sonst fällt mir dazu auch nix ein.
mfg Martin
Moin hansis1,
derweil kann ich ja alternativ etwas dazu schreiben.
Du könntest natürlich diese Anforderung so lösen:
...aber wozu dann überhaupt eine Variable??
...das reicht doch vollkommen.
Gruß
Biber,
der mehr simple Bätche bevorzugt
derweil kann ich ja alternativ etwas dazu schreiben.
Du könntest natürlich diese Anforderung so lösen:
(find /i "Fehler:" C:\temp\LOG.txt>nul) && set "FehlerFlag=Y"
IF defined FehlerFlag (
goto machDies
) ELSE (
goto MachDas
)
...
...aber wozu dann überhaupt eine Variable??
(find /i "Fehler:" C:\temp\LOG.txt>nul) && goto MachDies
goto MachDas
...
Gruß
Biber,
der mehr simple Bätche bevorzugt
hier mal ne Lösung über for:
zuerst Daten in eine Datei schreiben
echo "text" > daten.dat
dann über for wieder auslesen und als Umgebungsvariable setzen
for /F "tokens=1" %%i in (daten.dat) do set env=%%i
dann mit der Variablen was machen, z.B. ausgeben
echo %env%
Variable und Datei wieder löschen
set env=
del daten.dat
--> damit kannst du den Inhalt der Variablen weiter auswerten, die Lösung von Biber weiter unten könnte für deine Zwecke aber ausreichend sein und ist viel kürzer und übersichtlicher als meine.
mfg Martin
zuerst Daten in eine Datei schreiben
echo "text" > daten.dat
dann über for wieder auslesen und als Umgebungsvariable setzen
for /F "tokens=1" %%i in (daten.dat) do set env=%%i
dann mit der Variablen was machen, z.B. ausgeben
echo %env%
Variable und Datei wieder löschen
set env=
del daten.dat
--> damit kannst du den Inhalt der Variablen weiter auswerten, die Lösung von Biber weiter unten könnte für deine Zwecke aber ausreichend sein und ist viel kürzer und übersichtlicher als meine.
mfg Martin