n10n50
Goto Top

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

Content-Key: 129066

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

Printed on: April 16, 2024 at 13:04 o'clock

Member: miniversum
miniversum Nov 10, 2009 at 14:28:56 (UTC)
Goto Top
Das herausfiltern der Leerzeilen kannst du mit dem Findstr Befehl machen:
@findstr /R ^.$ "%1" > temp.txt
Member: Biber
Biber Nov 10, 2009 at 15:00:03 (UTC)
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