flowie82

Mit einer Batch in einer txt-datei an einer bestimmten Stelle ein Zeichen einfügen

Hallo zusammen,

ich versuche mich an einer Batch-Datei, allerdings sind meine Kenntnisse eher auf dem Anfänger-Stand.

Ich möchte innerhalb einer beliebigen Textdatei(mit beliebigen Namen) in jeder Zeile an Stelle 14 und 18 ein "|" einfügen.

"Vorlage:"

r 39|24.02.2020|
r 339|24.02.2020|

"Ergebnis:"

r 39|24|.02.|2020|
r 339|24|.02.|2020|

Wichtig dabei ist, das alles davor und dahinter in der Zeile erhalten bleibt und auch eventuelle Leerzeichen mitgezählt werden.

Ich hoffe es ist klar geworden was ich möchte und ihr könnt mir helfen face-smile

Viele Grüße

Florian
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 566193

Url: https://administrator.de/forum/mit-einer-batch-in-einer-txt-datei-an-einer-bestimmten-stelle-ein-zeichen-einfuegen-566193.html

Ausgedruckt am: 14.06.2025 um 20:06 Uhr

Henere
Henere 20.04.2020 um 18:16:40 Uhr
Goto Top
Servus. Bin ich blind oder ist vorher und nachher identisch ?

Henere
FloWie82
FloWie82 20.04.2020 um 18:23:20 Uhr
Goto Top
Hallo,

das ging schnell und schonmal danke für die Reaktion.

Ne bei nachher ist hinter der 24 ein "|" eingefügt und hinter 02. ist ein "|"

Eigentlich hatte ich nach dem "r" in Zeile 1 noch 7 Leerzeichen und in Zeile 2 noch 6 Leerzeichen eingefügt, so das ich dann auf Stelle 14 und 18 komme, wo dann das Pipe-Zeichen eingetragen werden soll.

Gruß

Florian
143728
Lösung 143728 20.04.2020 aktualisiert um 19:21:10 Uhr
Goto Top
@echo off
set "file=d:\datei.txt"  
powershell -EP ByPass -C "(gc '%file%') -replace '(.{13})(.{4})(.*)','$1|$2|$3' | sc '%file%'"  
FloWie82
FloWie82 20.04.2020 um 20:30:31 Uhr
Goto Top
Perfekt! Danke!
Setzt die Pipe-Zeichen genau da wo ich sie haben will!

Gibt es bei dem "set "file=d:\datei.txt" - Befehl noch eine Variable oder ähnliches, das die Batch die eine Textdatei nimmt, die in dem Ordner liegt, egal wie sie heißt? So müsste ich ja jedes Mal in die Batch gehen und den Dateinamen der Textdatei angeben, damit es funktioniert!?

Wenn es das noch gibt, wäre ich wunschlos glücklich, wobei der obere Befehl das Hauptproblem gelöst hat!
143728
Lösung 143728 20.04.2020 aktualisiert um 22:11:14 Uhr
Goto Top
@echo off
set "folder=d:\ordner"  
powershell -EP ByPass -C "(gc (gci '%folder%' -Filter *.txt | select -F 1).Fullname) -replace '(.{13})(.{4})(.*)','$1|$2|$3' | sc '%file%'"  
FloWie82
FloWie82 20.04.2020 um 23:23:37 Uhr
Goto Top
Super danke dir face-smile