Batch file Zeichen ersetzen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

wenn ich das recht verstanden habe sieht Deine "data.txt etwa so aus:

Franz Meier@g
Hotzenplotz@g
Franz@g
Auch egal wenn was  anderes kommm@blah&blub
oder sonstwas@blub.com
Max&Klärchen@eimer.de

(ich habe mir erlaubt zu Demonstrationszwecken auch andere Sachen dem @-Zeichen folgen zu lassen.)

demo.cmd

@echo off
>"newdata.txt" (call )  &rem entfernt den evtl. vorhandenen Inhalt der Zieldatei.
for /f "usebackq tokens=1 delims=@" %%a in ("data.txt") do ( >>"newdata.txt" echo %%a)

kleine Erklärung:

  • usebackq erlaubt die auch Verwendung von "Dateinamen mit Leerzeichen" im for/f-Header (einfach sicherer, wenn ein Nutzer mal die Kommandozeile für einen anderen Namen verwenden möchte😌)
  • tokens=1 übergibt das 1 "Stück" der Zeile in %%a
  • delims=@ (zer)teilt die Zeile mit dem Zeichen @
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
Chengaaa 
Fragesteller
 16.11.2022, 08:35

Dankeschön hat wirklich viel geholfen :)

0
Chengaaa 
Fragesteller
 16.11.2022, 08:40

Ich hätte da noch eine frage. Und zwar gibt es auch einen befehl, dass die alte Data file dann geleert wird sobald er die newdata erstellt? lg

0
Erzesel  17.11.2022, 00:53
@Chengaaa
>"data.txt" (call )

...oder löschen:

del "data.txt"

oder die neue Datei in die alte verschieben:

move "newdata.txt" "data.txt"
0