Ich versuche, ein seltsames Verhalten mit diesem Cmdlet zu verstehen.Out-File -Append in Powershell erzeugt keine neue Zeile und bricht Zeichenfolge in Zeichen
Wenn ich "Out-File -appenn Dateiname.txt" für eine Textdatei verwende, die ich über das Windows-Kontextmenü erstellt und eingegeben habe, wird die Zeichenfolge an die letzte Zeile in dieser Datei als eine Reihe von Leerzeichen angehängt getrennte Zeichen.
So:
"This is a test" | out-file -append textfile.txt
produzieren: T h i s i s A t e s t
Dies wird nicht passieren, wenn out-Datei, um die Datei erstellt, oder wenn die Textdatei hat keinen Text in ihm vor anhängen. Warum passiert das?
Ich werde auch bemerken, dass die Wiederholung des Befehls nur auf die gleiche Weise an die gleiche Zeile anhängen wird. Ich denke, es erkennt nicht Newline oder Zeilenumbrüche Terminator oder etwas aufgrund der geänderten Codierung?
"Out-File" verwendet standardmäßig die Unicode-Kodierung. Verwenden Sie '-Encoding Ascii'. In Ihrem Fall out-file -Encoding Ascii -append textfile.txt'. Add-Content verwendet standardmäßig ASCII und hängt auch standardmäßig an. "Dies ist ein Test" | Add-Inhalt textfile.txt'. Sie haben keine neue Zeile gesendet, damit sie nicht in die Datei geschrieben wird. – Matt
möglich duplicate von [NUL-Byte zwischen jedem anderen Zeichen in der Ausgabe] (http://stackoverflow.com/questions/11147179/nul-byte-between-every-other-character-in-output) – Matt
@Matt Sie sollten habe deinen ersten Kommentar eine Antwort gegeben und das Problem gelöst. – TheMadTechnician