zeilenumbruch alle 20 zeichen in textdatei (als Batch in Win2k)
Text in einer txt-Datei besteht aus einer Zeile mit ca 200 Zeichen. In diesen Text soll alle 20 Zeichen ein Zeilenumbruch eingefügt werden. Die Ausgabe soll in einer neuen txt-Datei erscheinen.
Hallo,
ich habe folgendes Problem:
Ein Programm gibt einen Text in einer Textdatei aus. Dieser Text erscheint dann in der Datei eingabe.txt in einer Zeile ungefähr nach dem Muster:
"Adressat" "Das hier ist der Mustertext. Dieser soll nur für irgendetwas stehen" 01.01.2008 12:00:00,00
Jetzt soll eine Batchdatei dafür sorgen, dass der Inhalt der Datei eingabe.txt alle 20 Zeichen mit einem Zeilenumbruch versehen wird. Das Ergebnis soll in eine Datei ausgabe.txt geschrieben werden. Der Inhalt soll also folgendermaßen aussehen:
"Adressat" "Das hier
ist der Mustertext.
Dieser soll nur für
irgendetwas stehen"
01.01.2008 12:00:00
,00
(auf Worttrennung soll nicht geachtet werden, es soll nur exakt nach 20 Zeichen eine neue Zeile begonnen werden).
Ich habe in diesem Forum schon von einem Befehl "FOR /F" gelesen, jedoch verliefen meine Experimente damit nicht erfolgreich, da ich die Syntax noch nicht koplett verstehe. Kann mir jemand sagen, wie ich das Problem gelöst bekomme?
Hintergrund der ganzen Sache ist, dass ich eine Textdatei auf einem LC-Display ausgeben möchte, die nur 20 Zeichen Platz pro Zeile hat.
Ich habe schon mehrere Foren nach meinem Problem gesucht, jedoch bis auf "FOR /F" nicht annähernd die richtige Lösung gefunden. Wenn ich jedoch einen Artikel im Forum übersehen habe, so bitte ich um Nachsicht und Angabe des Links in diesem Thread.
Vielen Dank bis hierhin und viele Grüße
Pepsmier
Hallo,
ich habe folgendes Problem:
Ein Programm gibt einen Text in einer Textdatei aus. Dieser Text erscheint dann in der Datei eingabe.txt in einer Zeile ungefähr nach dem Muster:
"Adressat" "Das hier ist der Mustertext. Dieser soll nur für irgendetwas stehen" 01.01.2008 12:00:00,00
Jetzt soll eine Batchdatei dafür sorgen, dass der Inhalt der Datei eingabe.txt alle 20 Zeichen mit einem Zeilenumbruch versehen wird. Das Ergebnis soll in eine Datei ausgabe.txt geschrieben werden. Der Inhalt soll also folgendermaßen aussehen:
"Adressat" "Das hier
ist der Mustertext.
Dieser soll nur für
irgendetwas stehen"
01.01.2008 12:00:00
,00
(auf Worttrennung soll nicht geachtet werden, es soll nur exakt nach 20 Zeichen eine neue Zeile begonnen werden).
Ich habe in diesem Forum schon von einem Befehl "FOR /F" gelesen, jedoch verliefen meine Experimente damit nicht erfolgreich, da ich die Syntax noch nicht koplett verstehe. Kann mir jemand sagen, wie ich das Problem gelöst bekomme?
Hintergrund der ganzen Sache ist, dass ich eine Textdatei auf einem LC-Display ausgeben möchte, die nur 20 Zeichen Platz pro Zeile hat.
Ich habe schon mehrere Foren nach meinem Problem gesucht, jedoch bis auf "FOR /F" nicht annähernd die richtige Lösung gefunden. Wenn ich jedoch einen Artikel im Forum übersehen habe, so bitte ich um Nachsicht und Angabe des Links in diesem Thread.
Vielen Dank bis hierhin und viele Grüße
Pepsmier
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79271
Url: https://administrator.de/forum/zeilenumbruch-alle-20-zeichen-in-textdatei-als-batch-in-win2k-79271.html
Ausgedruckt am: 22.04.2025 um 09:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo pepsmier und willkommen im Forum!
Falls ein wenig temporäres VBScript (dieses kommt besser mit Sonderzeichen etc zurecht) nicht stört:
Alternativ könnten die ersten beiden Zeilen so aussehen:
Damit könntest Du zB per Drag&Drop auf die Batchdatei aus zB "D:\Text.txt" die Datei "D:\Text-20.txt" erzeugen.
Grüße
bastla
[Edit] Alternative für Verwendung mit Parameter-Übergabe ergänzt. [/Edit]
Falls ein wenig temporäres VBScript (dieses kommt besser mit Sonderzeichen etc zurecht) nicht stört:
@echo off & setlocal
set "Ein=D:\Eingabe.txt"
set "Aus=D:\Ausgabe.txt"
set S20=%temp%\Split20.vbs
echo Set fso=CreateObject("Scripting.FileSystemObject"):Text=fso.OpenTextFile("%Ein%",1).ReadAll>%S20%
echo Set Aus=fso.OpenTextFile("%Aus%",2,True):For i=1 To Len(Text) Step 20:Aus.WriteLine Mid(Text,i,20):Next:Aus.Close>>%S20%
cscript //nologo %S20%
del %S20%
set "Ein=%~1"
set "Aus=%~dpn1-20%~x1"
Grüße
bastla
[Edit] Alternative für Verwendung mit Parameter-Übergabe ergänzt. [/Edit]
Moin Pepsmier,
auch von mir willkommen im Forum.
Damit Du auch eine FOR /F -Variante in der Skizzensammlung hast, gehe ich mal von diesem Satz aus:
Mit diesem Schnipsel...
...erhältst Du
Und Antworten auf die Frage nach der Syntax liefert am CMD-Prompt "FOR /?".
Grüße
Biber
[Edit Tippfehlerberichtigung 28.1.2008 Biber]
auch von mir willkommen im Forum.
Damit Du auch eine FOR /F -Variante in der Skizzensammlung hast, gehe ich mal von diesem Satz aus:
Ich habe in diesem Forum schon von einem Befehl "FOR /F" gelesen, jedoch verliefen meine Experimente damit nicht erfolgreich, da ich die Syntax noch nicht koplett verstehe. Kann mir jemand sagen, wie ich das Problem gelöst bekomme?
...und speichere den in der Datei "RaffINed.txt".Mit diesem Schnipsel...
::------snipp split20.cmd
@echo off & setlocal enableDelayedExpansion
For /F "delims=" %%i in (RaffINed.txt) do (
Set "Line=%%~i"
For /L %%j in (0,20,180) do if "!line:~%%j,20!" NEQ "" @echo !line:~%%j,20!
)
$cmd$split20.cmd
Ich habe in diesem F
orum schon von einem
Befehl "FOR /F" gel
esen, jedoch verlief
en meine Experimente
damit nicht erfolgr
eich, da ich die Syn
tax noch nicht kople
tt verstehe. Kann mi
r jemand sagen, wie
Und Antworten auf die Frage nach der Syntax liefert am CMD-Prompt "FOR /?".
Grüße
Biber
[Edit Tippfehlerberichtigung 28.1.2008 Biber]
Hallo pepsmier!
Als (ausnahmsweise
kommentiertes) VBScript sähe das so aus:
Dieses Script wird unter dem Namen "Split20.vbs" zur Laufzeit durch die Batchdatei im %Temp%-Verzeichnis erzeugt, über "cscript.exe" als Konsolenversion ausgeführt und wieder gelöscht.
Grüße
bastla
Die Lösung von bastla mit VBScript verstehe ich zwar auch nicht im einzelnen
So können wir das hier nicht stehen lassen ...Als (ausnahmsweise
Set fso = CreateObject("Scripting.FileSystemObject")
'Objekt für Zugriff auf das Dateisystem - schwer zu erraten ...
Text = fso.OpenTextFile("%Ein%",1).ReadAll
'Öffne die Datei %Ein% (wird beim Erstellen des Scripts durch den Inhalt der
' Batch-Variablen ersetzt) und lies den gesamten Inhalt in die Variable "Text" ein.
Set Aus = fso.OpenTextFile("%Aus%",2,True)
'Ausgabedatei (wieder lt Batch-Variable) zum Schreiben öffnen
For i = 1 To Len(Text) Step 20
'Zählschleife von 1 bis "Textlänge" (= Zeichenanzahl des Textes) mit Schrittweite 20
Aus.WriteLine Mid(Text, i, 20)
'Lies ab Position i des Textes 20 Zeichen (oder so viele, wie noch - am Ende des Textes -
' vorhanden sind) und schreibe diese sowie einen Zeilenumbruch in die Ausgabedatei.
Next
'Schleifenende
Aus.Close
'Ausgabedatei schließen
Grüße
bastla