Mit Powershell v2, das aus einer Batch-Datei aufgerufen wird, möchte ich jede CRLF in einer Datei mit nur einem LF ersetzen. Wenn eine Datei nur LF ohne CR hat, möchte ich alle LF in Ruhe lassen.Powershell v2: CRLF durch LF ersetzen
Ich möchte keine abschließende CRLF in der resultierenden Datei, wenn möglich.
Ich fand this question here on Stack Overflow, das scheint eine enge Übereinstimmung sein, aber es gibt keine Powershell-Version Anforderung, noch gibt es die anderen oben genannten Kriterien. Daher diese Frage.
Die akzeptierte Antwort auf diese Frage empfiehlt diesen Code:
$in = "C:\Users\abc\Desktop\File\abc.txt"
$out = "C:\Users\abc\Desktop\File\abc-out.txt"
(Get-Content $in) -join "`n" > $out
ich es leicht modifiziert und angepasst es aus einer Batch-Datei zu arbeiten, zu lesen:
powershell -Command "(Get-Content file1.txt) -join '`n' > file2.txt"
Leider ist dies funktioniert nicht. Alle LFs werden in die Zeichenfolge `n
konvertiert.
Wie kann ich dies funktioniert?
Danke! Tolle Information! Warum haben Sie das führende kaufmännische Und-Zeichen hinzugefügt, den Befehl in geschweifte Klammern eingeschlossen und das abschließende Semikolon hinzugefügt? – RockPaperLizard
Hmmm .... Ich erhalte den folgenden Fehler: ** Sie müssen einen Wertausdruck auf der rechten Seite des '-join'-Operators angeben. ** – RockPaperLizard
Entschuldigung. Ich entkam den Anführungszeichen mit 'aber powershell.exe benötigt ein \, wenn von Batch-Datei ausgeführt. Ich habe jetzt alle Beispiele richtig getestet. – tukan