n10n50

BAT - Leerzeilen in txt löschen

Habe folgende Zeilen im Internet gefunden, die es ermöglichen sollten - jedoch einen kleinen Fehler beinhalten...
@echo off
FOR /F "delims=" %%f IN (%1) DO echo %%f >> temp.txt
del %1
ren temp.txt %1

Schönen guten Nachmittag.

Mein Problem ist:
Ich habe eine txt, csv Datei die jedoch erst formatiert gehört...

Derzeit in folgendem Schema:
[quote]
xyz bla abc;
;1564
abc def;
;892

adfs;
;1234
[quote]

D.h. ich habe in unregelmäßigen Abständen eine Leerzeile drinnen dich ich im ersten Schritt mal entfernen möchte.
Jedoch wenn ich folgenden Batch-Code ausführe:
@echo offFOR /F "delims=" %%f IN (%1) DO echo %%f >> temp.txt del %1ren temp.txt %1

Werden mir nich nur Leerzeichen, sondern auch diese Zeilen gelöscht wo zuerst ; Steht und dann die Zahl...
Ich hätte aber gern nur die Leerzeilen gelöscht...

Im zweiten Schritt (eigene bat-Datei) würde ich dann gerne jede zweite Zeile eine Zeile nach oben holen...
Also aus:
[quote]
xyz bla abc;
;1564
abc def;
;892
adfs;
;1234
[quote]
wird dann:
[quote]
xyz bla abc;1564
abc def;892
adfs;1234
[quote]
Sprich er muss ";2349" eine Zeile nach oben ans Ende holen und dann evtl. noch eines der ; löschen, das ist aber nicht so wichtig.


Lg
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 129066

Url: https://administrator.de/forum/bat-leerzeilen-in-txt-loeschen-129066.html

Ausgedruckt am: 22.05.2025 um 19:05 Uhr

miniversum
miniversum 10.11.2009 um 15:28:56 Uhr
Goto Top
Das herausfiltern der Leerzeilen kannst du mit dem Findstr Befehl machen:
@findstr /R ^.$ "%1" > temp.txt
Biber
Biber 10.11.2009 um 16:00:03 Uhr
Goto Top
Moin n10n50,

willkommen im Forum.

alternativ kannst du den undokumentierten Defaultwert für Kommentarzeilen "eol=;" überschreiben.

Beispiel:
FOR /F "eol= delims=" %%f IN (bla.txt) DO @echo %%f  
-oder explizite Angabe eines nicht vorkommenden Zeichens-
FOR /F "eol=§ delims=" %%f IN (bla.txt) DO @echo %%f  

Grüße
Biber