Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

zeilenumbruch alle 20 zeichen in textdatei (als Batch in Win2k)

Frage Entwicklung Batch & Shell

Mitglied: pepsmier

pepsmier (Level 1) - Jetzt verbinden

27.01.2008, aktualisiert 28.01.2008, 14139 Aufrufe, 5 Kommentare

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
Mitglied: miniversum
27.01.2008 um 19:00 Uhr
Versuchs mal so:
01.
@echo off 
02.
set /p text=<eingabe.txt 
03.
:cuttext 
04.
echo %text:~0,20%>>ausgabe.txt 
05.
set text=%text:~20% 
06.
if [%text%] neq [] goto:cuttext
miniversum
Bitte warten ..
Mitglied: bastla
27.01.2008 um 19:29 Uhr
Hallo pepsmier und willkommen im Forum!

Falls ein wenig temporäres VBScript (dieses kommt besser mit Sonderzeichen etc zurecht) nicht stört:
01.
@echo off & setlocal 
02.
set "Ein=D:\Eingabe.txt" 
03.
set "Aus=D:\Ausgabe.txt" 
04.
 
05.
set S20=%temp%\Split20.vbs 
06.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Text=fso.OpenTextFile("%Ein%",1).ReadAll>%S20% 
07.
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% 
08.
cscript //nologo %S20% 
09.
del %S20%
Alternativ könnten die ersten beiden Zeilen so aussehen:
01.
set "Ein=%~1" 
02.
set "Aus=%~dpn1-20%~x1"
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]
Bitte warten ..
Mitglied: Biber
27.01.2008 um 21:03 Uhr
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:
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...
01.
::------snipp split20.cmd 
02.
@echo off & setlocal enableDelayedExpansion 
03.
For /F "delims=" %%i in (RaffINed.txt) do ( 
04.
Set "Line=%%~i"  
05.
For /L %%j in (0,20,180) do if "!line:~%%j,20!" NEQ "" @echo !line:~%%j,20! 
06.
)
...erhältst Du
01.
$cmd$split20.cmd 
02.
Ich habe in diesem F 
03.
orum schon von einem 
04.
 Befehl "FOR /F" gel 
05.
esen, jedoch verlief 
06.
en meine Experimente 
07.
 damit nicht erfolgr 
08.
eich, da ich die Syn 
09.
tax noch nicht kople 
10.
tt verstehe. Kann mi 
11.
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]
Bitte warten ..
Mitglied: pepsmier
28.01.2008 um 16:01 Uhr
Hallo zusammen,

vorerst vielen Dank für die hilfreichen Beiträge. Die Lösung für mein Problem war schnell gefunden. Die Methode von miniversum habe ich ausprobiert. Die hat jedoch auf meinem System nicht funktioniert, vielleicht habe ich mich auch irgendwo vertan. Die Lösung von bastla mit VBScript verstehe ich zwar auch nicht im einzelnen (komme auch eher aus der java Ecke), jedoch hat diese sofort funktioniert.

Dankeschön an alle die sich mit dem Thema befasst haben und noch einen schönen Tag!

Grüße

Pepsmier
Bitte warten ..
Mitglied: bastla
28.01.2008 um 16:38 Uhr
Hallo pepsmier!

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 kommentiertes) VBScript sähe das so aus:
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
'Objekt für Zugriff auf das Dateisystem - schwer zu erraten ... 
03.
 
04.
Text = fso.OpenTextFile("%Ein%",1).ReadAll 
05.
'Öffne die Datei %Ein% (wird beim Erstellen des Scripts durch den Inhalt der 
06.
'	Batch-Variablen ersetzt) und lies den gesamten Inhalt in die Variable "Text" ein. 
07.
 
08.
Set Aus = fso.OpenTextFile("%Aus%",2,True) 
09.
'Ausgabedatei (wieder lt Batch-Variable) zum Schreiben öffnen 
10.
 
11.
For i = 1 To Len(Text) Step 20 
12.
'Zählschleife von 1 bis "Textlänge" (= Zeichenanzahl des Textes) mit Schrittweite 20 
13.
 
14.
	Aus.WriteLine Mid(Text, i, 20) 
15.
	'Lies ab Position i des Textes 20 Zeichen (oder so viele, wie noch - am Ende des Textes - 
16.
	'	vorhanden sind) und schreibe diese sowie einen Zeilenumbruch in die Ausgabedatei. 
17.
 
18.
Next 
19.
'Schleifenende 
20.
 
21.
Aus.Close 
22.
'Ausgabedatei schließen
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...