Batch Script zur Textverarbeitung

l_mrx

Newbie
Registriert
März 2017
Beiträge
2
Hallo zusammen,
ich möchte folgendes mit einem Batch Script bewerkstelligen:

beispiel.txt enthält:
Ort:Mönchengladbach
Ortsteil:Hardt
Ort:
Ortsteil:

Möchte jetzt per Batch folgendes Ergebnis erhalten:

ausgabe.txt:
Mönchengladbach;Hardt;

Ist das möglich?

VG
l_mrx
 
Bestimmt mit sed+awk, aber dann ist das nicht wirklich mehr ein Batchscript und braucht sowieso extra Software. Alleine mit Windows Bordmitteln in einer Batchdatei nicht.
Was du nutzen willst ist Windows Scripting Host (VisualBasic) oder Powershell.
Oder jede andere Skriptsprache die dir gefällt.
 
HominiLupus schrieb:
Alleine mit Windows Bordmitteln in einer Batchdatei nicht.

Doch, siehe z. B. hier. Keine sonderlich eingängige bzw. sich auf den ersten Blick erschließende Syntax (da sind PowerShell oder andere hier genannte Alternativen sicher "verständlicher"), aber möglich ist's in einer reinen Batchdatei mit Bordmitteln schon.
 
So in etwa sollte das funktionieren:
Code:
@echo off
setlocal enabledelayedexpansion
for /F  "delims=" %%l in (beispiel.txt) do (
    set line=%%l
    if !found!==1 (
	    for /F "tokens=1,2 delims=:" %%c in ("!line!") do (
                 echo !ort!;%%d; >> Ausgabe.txt
		 set found=0
        )
    ) else (
		if not [!line!]==[] if not !line!==!line:Ort:=X! (
			for /F "tokens=1,2 delims=:" %%a in ("!line!") do (
				set ort=%%b
				set found=1
			)
		) else (
			set found=0
		)
	)
)
Ich Suche nach einer Zeile mit "Ort:". Wenn ich diese gefunden habe, dann schreibe ich den Wert nach dem ":" und den Wert nach dem ":" aus der nächsten Zeile in die Ausgabedatei.
 
Zurück
Oben