Sto cercando di capire alcuni comportamenti strani con questo cmdlet.Out-File -appende in Powershell non produce una nuova riga e spezza la stringa nei caratteri
Se si utilizza "Out-File -append Filename.txt" su un file di testo che ho creato e inserito il testo in tramite il menu di scelta rapida di Windows, la stringa si aggiungerà all'ultima riga di quel file come una serie di spazio personaggi separati.
Quindi:
"This is a test" | out-file -append textfile.txt
produrrà: T h i s i s a t e s t
Questo non succederà se out-file crea il file, o se il file di testo non ha alcun testo in esso prima aggiungendo. Perché succede?
Noterò inoltre che la ripetizione del comando verrà aggiunta allo stesso modo alla stessa riga. Suppongo che non riconosca il carattere di interruzione di linea o di interruzione di riga o qualcosa a causa della codifica modificata?
'Out-File' consente di default di codificare unicode per impostazione predefinita. Usa '-Encoding Ascii'. Nel tuo caso 'out-file -Encoding Ascii -append textfile.txt'. Aggiungi contenuto usa ascii per impostazione predefinita e aggiunge anche di default. '" Questo è un test "| Aggiungi-contenuto textfile.txt'. Non hai inviato una nuova riga in modo che non ne scriva uno su file. – Matt
possibile duplicato di [NUL-byte tra ogni altro carattere nell'output] (http://stackoverflow.com/questions/11147179/nul-byte-between-every-other-character-in-output) – Matt
@Matt Dovresti avere appena fatto il tuo primo commento una risposta e considerato il problema risolto. – TheMadTechnician