Estoy intentando copiar el contenido del archivo csv y agregarlo a un archivo de texto. Copiar y agregar funciona, pero el formato adjunto es extraño.
Este es el comando que uso:
Get-Content -Path myfile1.csv | Seleccionar-objeto-saltar 1 | Out-File mynewfile.txt -Agregar
El texto adjunto se ve así cuando se abre en el Bloc de notas:
1 0 2 3 8 9, 1, A B C, P 2
en lugar de
102389,1,ABC,P2
Hay un espacio entre cada personaje. Simplemente cambiar el nombre del .csv a .txt no ayudó.
Respuesta1
Intenta usarAgregar contenidocmdlet:
El cmdlet Add-Content agrega contenido a un elemento o archivo específico. Puede especificar el contenido escribiéndolo en el comando o especificando un objeto que contenga el contenido.
Get-Content -Path myfile1.csv | Select-object -skip 1 | Add-Content mynewfile.txt
Respuesta2
En PowerShell 5.1, la codificación predeterminada Out-File
esUnicode(UTF16-LE), mientras que en PowerShell 7.x la codificación predeterminada esutf8NoBOM.
Aparentemente, su archivo de entrada está codificado de manera diferente, como ASCII o UTF-8. y al agregarle texto UTF16-LE, el resultado es lo que experimenta.
Out-File tiene un -Encoding
parámetro, por lo que puede corregir su código agregando -Encoding default
O usando Add-Content
en lugar de Out-File
.
Codificación Default
es la codificación que corresponde a la página de códigos activa del sistema (generalmente ANSI).
Add-Content también tiene un parámetro -Encoding
. En PowerShell 5.1 el valor predeterminado es Default
. En PowerShell 7.x la codificación predeterminada es utf8NoBOM
.