mit einer Batch Datei jede Zeile einer txt Datei mit einem Semikolon beenden?
Hallo, ich habe eine großvolumige Text Datei (txt), bei der ich am Ende jeder Zeile ein Semikolon setzen muss. Durch diese Trennung kann ich späer die Dateien weiterverarbeiten. Einzel eintippen ist ein Tagesjob. Wie muss die Batch Datei aussehen?
2 Antworten
...eigentlich trivial....
In einer For-schleife öffnen und Zeile für Zeile in eine nue Datei schreiben...
@echo off
chcp 65001 >nul
rem Datei leeren (oder neu erzeugen...egal)
(call) >"neueDatei.txt"
rem originaldatei einlesen (tokns=*): zeile im Ganzen
for /f "usebackq tokens=*" %%a in ("meineOriginalDatei.txt") do (
rem semikolon an eingelesen Zeile anhängen und diese in neue Datei schreibeh
echo %%a;>>"neueDatei.txt"
)
rem neue Datei mal anzeigen
type "neueDatei.txt"
rem oder öffnen
"neueDatei.txt"
pause
...solange in den Zeilen keine Batch-Sonderzeichen &|<> enthalten sind sollte dies ausreichen...
folgende Variante ruft einfach einen Powershell-OneLiner auf, dieser ist Resistent gegen die Tücken von Batchsteuerzeichen, kann jedoch nur bedingt mit Umlauten /UTF8Zeichen umgehen.
powershell Get-Content 'meineOriginalDatei.txt'^|%%{'{0};' -f $_}^| Out-File -Encoding 'Default' 'neueDatei.txt'
pause
Da ich nicht die Komplexität deines Textes Kenne lasse ich mal ausgefallenere Varianten außen vor. Wenn nötig frag einfach noch mal nach. im Prinzip ist alles machbar
PS: scheint generell zu klappen:
demo.cmd
rem codepage für UTF8 setzten
chcp 65001 >nul
powershell Get-Content 'meineOriginalDatei.txt'^|%%{'{0};' -f $_}^| Out-File -Encoding 'Default' 'neueDatei.txt'
pause
meineOriginalDatei.txt
Cat ipsum dolor sit amet, aliquid but eiusmod for aliquip.
bub&|<>ÄÖÜ Kyrillische Zeichn: фывЙЭЮЯ
Lorem suscipit yet voluptatem. Eu laboriosam irure qui.
Inventore culpa ipsa yet quam, irure. Culpa. Sequi.
Et quam, for nulla sunt for unde. Minim aliquam veniam, and illum. Ex illo yet iste yet dicta.
Cupidatat ipsum, nesciunt est quis. Labore illo or enim but veniam yet sequi amet, nihil.
Do totam but quaerat. Odit architecto. Consequatur. Dolorem suscipit for ipsam but iste so quasi but nostrum iste.
Ausgabe in: neueDatei.txt :
Cat ipsum dolor sit amet, aliquid but eiusmod for aliquip.;
bub&|<>ÄÖÜ Kyrillische Zeichn: фывЙЭЮЯ;
Lorem suscipit yet voluptatem. Eu laboriosam irure qui. ;
Inventore culpa ipsa yet quam, irure. Culpa. Sequi. ;
Et quam, for nulla sunt for unde. Minim aliquam veniam, and illum. Ex illo yet iste yet dicta.;
;
Cupidatat ipsum, nesciunt est quis. Labore illo or enim but veniam yet sequi amet, nihil. ;
Do totam but quaerat. Odit architecto. Consequatur. Dolorem suscipit for ipsam but iste so quasi but nostrum iste.;
Besorg dir sed für Windows (z.B. hier), damit ist das ein Einzeiler:
sed "s/$/;/" bla.txt > bla_mit_semikolon.txt
Ich schätze dass das auch mit jedem Texteditor geht, der Suchen und Ersetzen mit Regex kann. Notepad++ oder was auch immer auf Windows so üblich ist.