Leerzeichen am Ende (innerhalb) einer .txt Datei entfernen
Guten Abend,
ich habe da noch mal eine Frage; innerhalb einer .txt habe ich am Ende 1x Leerzeichen und dann ein carriage return (eingabetaste) stehen,
kann das über ein Batch File entfernt werden?
Beste Grüße!
ich habe da noch mal eine Frage; innerhalb einer .txt habe ich am Ende 1x Leerzeichen und dann ein carriage return (eingabetaste) stehen,
kann das über ein Batch File entfernt werden?
Beste Grüße!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 366796
Url: https://administrator.de/forum/leerzeichen-am-ende-innerhalb-einer-txt-datei-entfernen-366796.html
Ausgedruckt am: 14.04.2025 um 15:04 Uhr
9 Kommentare
Neuester Kommentar
Mit Batch alleine fällt mir so nichts (elegantes) ein. Mit diversen Skriptsprachen ist das ziemlich trivial lösbar. Als Beispiel will ich einfach mal AutoIt nennen.
Entweder macht man das dann, indem man in einer Schleife alle Zeilen durchgeht und das letzte Zeichen entfernt, falls es ein Leerzeichen ist.
Oder man nutzt einen eleganteren regulären Ausdruck. Könnte in AutoIt dann so aussehen, wobei der RegEx ungetestet ist:
Entweder macht man das dann, indem man in einer Schleife alle Zeilen durchgeht und das letzte Zeichen entfernt, falls es ein Leerzeichen ist.
Oder man nutzt einen eleganteren regulären Ausdruck. Könnte in AutoIt dann so aussehen, wobei der RegEx ungetestet ist:
1
2
3
2
3
$sContent = FileRead("myfile.txt")
$sContent = StringRegExpReplace($sContent, "(?m)(.+?)\h+$", "\1")
FileWrite("myfile.txt", $sContent)
Er sagt ja nicht für welches OS. Wenn er kein Winblows Knecht ist, ist awk das Mittel der Wahl:
https://www.heise.de/ct/ausgabe/2014-22-Textverarbeitung-auf-der-Kommand ...
https://www.heise.de/ct/ausgabe/2014-22-Textverarbeitung-auf-der-Kommand ...
Servus freshman2017,
Ich denke mal es geht um deinen letzten Beitag. Wenn ja dann benutze beim Befehl (Set-Content /Alias sc) welcher deine Ausgabe generiert den Parameter -NoNewLine, denn per Default erzeugt Set-Content einen Zeilenumbruch. Mit dem Parameter wird das verhindert.
Hier im Kontxt deines letzten Threads
Dann kannst du nämlich das nachträgliche Ersetzen ad acta legen.
Grüße Uwe
Ich denke mal es geht um deinen letzten Beitag. Wenn ja dann benutze beim Befehl (Set-Content /Alias sc) welcher deine Ausgabe generiert den Parameter -NoNewLine, denn per Default erzeugt Set-Content einen Zeilenumbruch. Mit dem Parameter wird das verhindert.
Hier im Kontxt deines letzten Threads
1
2
2
@echo off
powershell -Executionpolicy ByPass -Command "((Import-CSV \"$env:Userprofile\Test\test.csv\" -Delimiter ';' | %%{@('K',$_.TEST5, $_.TEST4) -join ';' }) -join ';') + ";" | sc \"$env:Userprofile\test\test.txt\" -NoNewLine"
Grüße Uwe
Kannst du, indem du einfach ein where-object in die Pipeline legst:
1
powershell -Executionpolicy ByPass -Command "((Import-CSV \"$env:USERPROFILE\TEST\test.csv\" -Delimiter ';' -Encoding Default) | ?{[Double]$_.Betrag -gt 0} | %%{\"$('K');$($_.'Betrag');$('Ja');$($_.'Datum '.replace(' ',''));\"}) -join '' | set-content -NoNewLine \"$env:USERPROFILE\TEST\test.txt\""