okidoki
Goto Top

Batch: Bestimmten Inhalt finden (anstatt bestimmte Zeile) und in Variable speichern

Hallo zusammen,

bin gerade an einer sandigen Stelle ... trotz tonnenweise guter Infos bekomme ich es nicht hin, eine bestimmte Stelle einer txt zu finden und einen Wert auszulesen.
Bisher finde ich eine bestimmte Zeile, möchte dies aber durch die Suche nach einem String ändern, z.B. Hausnummer:

@echo off & setlocal
set "Datei=werte.txt"  

set "pin="  
for /f "usebackq skip=1 delims=" %%i in ("%Datei%") do if not defined pin set "pin=%%i"   

set str=%pin%
set str=%str:~-2%
echo %str%

Denn bisher scheiterte mein Versuch daran, dass er mir die Datei öffnet ...
for /f %%i in ('werte.txt ^| find /c "Hausnummer"') do set "datei=%%i"  
echo %datei%

Ich möchte den z.B. den Begriff Hausnummer suchen und die mit einem ; getrennte Hausnummer in einer Variable speichern.

Ich freue mich über einen Tipp ...
okidoki

Content-Key: 615643

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

Printed on: April 18, 2024 at 23:04 o'clock

Member: OKIDOKI
OKIDOKI Oct 23, 2020 at 15:46:31 (UTC)
Goto Top
Nun habe ich doch eine Lösung gefunden!

Allerdings fiel mir auf, dass ich die Ausgabe ab dem Delims bräuchte ... wenn nämlich die Hausnummer dreistellig wird oder a,b, ... etc. hinzu kommt, wird das entsprechend abgeschnitten. Hier mein momentaner Code:

@echo off & setlocal
FOR /F "delims=" %%A IN ('findstr /C:"Hausnummer" "werte.txt"') DO set pin=%%A  
set str=%pin%
set str=%str:~-2%
echo %str%

Vielleicht habt ihr einen Tipp face-smile
okidoki
Member: OKIDOKI
OKIDOKI Oct 23, 2020 updated at 19:31:14 (UTC)
Goto Top
Ich denke, ich habe eine Lösung:

@echo off & setlocal
for /F "delims=" %%A IN ('findstr /C:"Hausnummer" "werte.txt"') DO set pin=%%A  
for /F "tokens=1,* delims=:" %%i in ("%pin%") do set string=%%j  
echo %string%

Zunächst wird der String mit Beginn "Hausnummer" als Variabel %pin% eingelesen.
Anschließend wird der Teil bis zum : abgeschnitten.
Übrig bleibt, voilá, die Hausnummer!

Gruß
okidoki