knechtibus
Goto Top

Per Batch-Datei bestimmte Zeilenabschnitte aus Textdatei kopieren

Hallo miteinander,

Folgendes Problem raubt mir die nerven:

Ich habe zwei Quelldateien in denen die zu kopierenden Strings jeweils in anderem Format vorliegen.

quelle1.txt:

12.03.2009[umi] .-name=L010 >>LMT_mnj_kl
12.03.2009[umi] .-name=L011 <<Vrb_lj_op_l
12.03.2009[umi] .-name=L012_LT_iuz_kr

@echo off 
if exist name.txt del name.txt 
for /f %%i in ('type quelle.txt^|tr "." "\n"^|tr -d -^|findstr name') do echo %%i >>name.txt   

Der code funktioniert einwandfrei aber ich hätte gern noch, dass wenn etwas hinter dem "name" string steht (Zeile 1 und 2), es auch mit in die name.txt kopiert wird. Die Datei name.txt soll dann wie folgt aussehen:

name=L010 >>LMT_mnj_kl
name=L011 <<Vrb_lj_op_l
name=L012_LT_iuz_kr

quelle2.txt:

L015 <<A_BC_D1-1 D:\ab\cd\ef.stk L016 >>G_HC_K1-2 D:\ab\cd\gh.stk
L017_L_pz_o1

@echo off 
if exist name2.txt del name2.txt 
for /f %%i in ('type quelle2.txt^|tr " " "\n"^|findstr L0') do echo %%i>>name2.txt   

Hier genau das gleiche: code funktioniert gut aber soll wenn vorhanden das Anhängsel noch mitkopieren. Die name2.txt soll dann wie folgt aussehen:

L015 <<A_BC_D1-1
L016 >>G_HC_K1-2
L017_L_pz_o1

Ich hoffe mein Problem ist klar geworden und ihr könnt mir helfen. Vielen Dank für eure Bemühungen.
Freu mich auf eure Antworten!

MfG knechtibus

Content-ID: 121389

Url: https://administrator.de/forum/per-batch-datei-bestimmte-zeilenabschnitte-aus-textdatei-kopieren-121389.html

Ausgedruckt am: 23.12.2024 um 00:12 Uhr

bastla
bastla 27.07.2009 um 11:53:59 Uhr
Goto Top
Hallo knechtibus!

Eigentlich sollten sich doch die Zeilen bei "quelle1.txt" anhand des "-" aufteilen lassen, also:
@echo off & setlocal
if exist name.txt del name.txt 
for /f "tokens=1* delims=-" %%i in ('findstr "name" "quelle.txt"') do >>name.txt echo %%j  
In "quelle2.txt" könnte (unter der Annahme, dass "L016.." auch in einer eigenen Zeile stünde) anhand der Leerzeichen wie folgt getrennt werden:
@echo off & setlocal
if exist name2.txt del name2.txt 
for /f "tokens=1-2" %%i in ('findstr "L0" "quelle2.txt"') do >>name2.txt echo %%i %%j  
Grüße
bastla
knechtibus
knechtibus 27.07.2009 um 14:14:05 Uhr
Goto Top
Hallo bastla!

Also für die Quelle 1 hat es so funktioniert wie ich es mir gedacht hab. Für die zweite leider überhaupt nicht. Mir ist aber gerade aufgefallen, dass mir der code den ich schon fertig geschrieben hatte vollkommen für meine Zwecke ausreicht. Insofern vielen Dank für die einwandfreie, schnelle Hilfe.

MfG knechtibus