Batch befehl für einen zeilenumbruch
Guten Tag,
ich habe folgendes Problem welches mich seit ein paar Tagen zum Verzweifeln bringt.
Ich habe einen ziemlich lange Zeichenfolge und möchte das nach xx Zeichen ein Zeilenumbruch einführt wird,
Zudem möchte ich das alle "&" Zeichen und der Buchstabe "F" durch Leerzeichen ersetzt werden.
Das ganze möchte ich als Batch Datei haben.
Danke im Voraus für eure Hilfe.
MfG Ramon
ich habe folgendes Problem welches mich seit ein paar Tagen zum Verzweifeln bringt.
Ich habe einen ziemlich lange Zeichenfolge und möchte das nach xx Zeichen ein Zeilenumbruch einführt wird,
Zudem möchte ich das alle "&" Zeichen und der Buchstabe "F" durch Leerzeichen ersetzt werden.
Das ganze möchte ich als Batch Datei haben.
Danke im Voraus für eure Hilfe.
MfG Ramon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207609
Url: https://administrator.de/forum/batch-befehl-fuer-einen-zeilenumbruch-207609.html
Ausgedruckt am: 08.04.2025 um 14:04 Uhr
11 Kommentare
Neuester Kommentar
Hallo Ramon,
Zeilenumbruch siehe:
echo Zeilenumbruch
oder folgenden Code benutzen(Achtung die zwei Leerzeilen müssen in der Batch erhalten bleiben)
Zum nutzen des Zeilenumbruchs schreibst du dann z.B.
Von einer Zeichenfolge die ersten 20 Zeichen extrahieren
Batch ersetzen von & und F durch Leerzeichen
Grüße Uwe
Zeilenumbruch siehe:
echo Zeilenumbruch
oder folgenden Code benutzen(Achtung die zwei Leerzeilen müssen in der Batch erhalten bleiben)
setlocal ENABLEDELAYEDEXPANSION
set NL=^
echo Zeile 1!NL!Zeile2
Von einer Zeichenfolge die ersten 20 Zeichen extrahieren
%variable:~0,20%
set replacedString=%variable:&= %
set replacedString=%replacedString:F= %
Grüße Uwe
Das Problem bei deinem String ist, dass er einerseits voller giftiger Sonderzeichen und andererseits eventuell überhaupt zu lang für Batch ist, was wir nicht wissen. Teste doch, ob @colinardo's Code für dich funktioniert.
Gruss!
sed
gibts auch ohne Installation, einfach auspacken und loslegen, z.B. hier. Die Verwendung ist geht so:sed "befehle" < "inputfile" > "outputfile"
Gruss!
Zitat von @ramon89:
Habe mir die Datein runtergeladen und die Sed exe ausgeführt. Danach habe ich folgenden Befehl:
sed 's/\&/ /g' Auswertung.txt > temp.txt
in einer bat Datei ausgeführt, er erstellt zwar die temp.txt aber diese ist leer.
Was mache ich falsch?
Habe mir die Datein runtergeladen und die Sed exe ausgeführt. Danach habe ich folgenden Befehl:
sed 's/\&/ /g' Auswertung.txt > temp.txt
in einer bat Datei ausgeführt, er erstellt zwar die temp.txt aber diese ist leer.
Was mache ich falsch?
Wenn ich das eingebe kommt:
Der Befehl "/" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
sed "s/F46=/&\n/g;s/F[0-9]\+=/ /g;s/&/ /g" Auswertung.txt > temp.txt
PS: @Biber war schneller O.o
Auch wenn dieser Beitrag schon über 10 Jahre alt ist, möchte ich für alle die nach einer Lösung für das Problem mit Zeilenumbrüchen suchen, meine Lösung vorstellen, in der Hoffnung, dass es dem einen oder anderen bei der Batch-Erstellung hilft.
Die Lösung ist sehr kompakt und effektiv, kommt außerdem ohne Umwege nur mit Bordmitteln aus, was bei komplexen Batchdateien die Lesbarkeit und das Debugging erleichtern kann.
Nachdem am Anfang sichergestellt wird, dass die erweiterten Funktionen zur Verfügung stehen, sowie die Unterdrückung des Befehlsechos gesetzt ist (@echo off &setlocal enabledelayedexpansion), setzt man mit "set" eine Variable mit den Inhalt "^&echo\" (ohne Anführungs- und Leerzeichen!), also wie in meinem Beispiel lautet der Befehl dann "set \n=^&echo\" in dem ich "\n" als Variablennamen gewählt habe.
Dieses bewirkt, dass bei Aufruf der Variable in einem String an der Stelle ein Zeilenumbruch (CR/LF) bei der Ausgabe eingefügt wird (durch Ausführen von "echo\"), welcher sich mehrfach wiederholen kann und nur von der maximal möglichen Anzahl an Zeichen im betreffenden String abhängt.
Einsetzen kann man ihn dann mittels "%Variable%", also in dem Fall "%\n%" (wichtig sind die beiden %, die den Bestandteil dazwischen als Variable deklarieren).
In dem Beispiel unten könnt ihr es auch gerne selbst ausprobieren:
Die Ausgabe sieht dann wie folgt aus:
Die Lösung ist sehr kompakt und effektiv, kommt außerdem ohne Umwege nur mit Bordmitteln aus, was bei komplexen Batchdateien die Lesbarkeit und das Debugging erleichtern kann.
Nachdem am Anfang sichergestellt wird, dass die erweiterten Funktionen zur Verfügung stehen, sowie die Unterdrückung des Befehlsechos gesetzt ist (@echo off &setlocal enabledelayedexpansion), setzt man mit "set" eine Variable mit den Inhalt "^&echo\" (ohne Anführungs- und Leerzeichen!), also wie in meinem Beispiel lautet der Befehl dann "set \n=^&echo\" in dem ich "\n" als Variablennamen gewählt habe.
Dieses bewirkt, dass bei Aufruf der Variable in einem String an der Stelle ein Zeilenumbruch (CR/LF) bei der Ausgabe eingefügt wird (durch Ausführen von "echo\"), welcher sich mehrfach wiederholen kann und nur von der maximal möglichen Anzahl an Zeichen im betreffenden String abhängt.
Einsetzen kann man ihn dann mittels "%Variable%", also in dem Fall "%\n%" (wichtig sind die beiden %, die den Bestandteil dazwischen als Variable deklarieren).
In dem Beispiel unten könnt ihr es auch gerne selbst ausprobieren:
@echo off &setlocal enabledelayedexpansion
::Zeilenumbruch als \n definieren
set \n=^&echo\
echo test 1%\n%test 2%\n%test 3%\n%und so weiter ...
Die Ausgabe sieht dann wie folgt aus:
>e:/zeilenumbruch_test.bat
test 1
test 2
test 3
und so weiter ...
>