sabio23
Goto Top

mit batch Textzeile formatieren

Habe folgendes Problem.

Ich habe eine vorhandene Textdatei in der dies drin steht:

Dies
ist
ein
Text


Wie schaffe ich es nun mit batch diesen Text so zu formatieren, das am Ende dies herauskommt:

Dies
ist ein
Text

Also wie man sieht, will ich nur Zeile 2 und 3 zu einer Zeile bearbeiten, der Rest soll so bleiben.
Wie stelle ich das am besten an?

Danke für jede Hilfe

Content-ID: 83782

Url: https://administrator.de/contentid/83782

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

funkmasta2k
funkmasta2k 24.03.2008 um 13:51:21 Uhr
Goto Top
Stehen in Zeile 2 und 3 jeweils nur ein wort, oder evtl. sogar ein Satz? Der
dann von Zeile 3 hinter die 2. Zeile rutschen soll?
sabio23
sabio23 24.03.2008 um 13:59:27 Uhr
Goto Top
das ist ein Satz

in 2 steht: put
und in Zeile 3 steht ein Pfad...

und das soll in eine Zeile

also: put pfad
bastla
bastla 24.03.2008 um 14:18:53 Uhr
Goto Top
Hallo sabio23 und willkommen im Forum!

Wenn es nur von der Zeilennummer abhängt, könntest Du so vorgehen:
@echo off & setlocal
set "Quelle=D:\Text.txt"  
set "Ziel=D:\TextNeu.txt"  
set "Zeile=2"  

set /a ZeilenNr=0
set AusgabeZeile=
if exist "%Ziel%" del "%Ziel%"  
for /f "usebackq delims=" %%i in ("%Quelle%") do call :ProcessLine "%%i"  
::move "%Ziel%" "%Quelle%" 
goto :eof

:ProcessLine
set /a ZeilenNr+=1
if defined AusgabeZeile goto :Ausgabe
if %ZeilenNr% neq %Zeile% (echo %~1>>"%Ziel%") & goto :eof  
set "AusgabeZeile=%~1" & goto :eof  

:Ausgabe
echo %AusgabeZeile% %~1>>"%Ziel%"  
set AusgabeZeile=
goto :eof
In"set Zeile=2" wird festgelegt, an Zeile welche die darauffolgende Zeile angefügt werden soll.

Um abschließend die Quelldatei durch die Zieldatei zu ersetzen (also sozusagen die Änderung "in der Quelldatei" durchzuführen), müsstest Du nur die beiden ":" vor "move" entfernen.

Grüße
bastla
sabio23
sabio23 24.03.2008 um 14:26:24 Uhr
Goto Top
Vielen Dank, hat einwandfrei geklappt.

P.s.: Super Forum :P