Powershell将文本从csv文件附加到文本文件

Powershell将文本从csv文件附加到文本文件

我正在尝试复制 csv 文件内容并附加到文本文件。复制和附加操作成功,但附加的格式很奇怪。

这是我使用的命令:

获取内容 -Path myfile1.csv | 选择对象 -skip 1 | 输出文件 mynewfile.txt -Append

在记事本中打开时附加的文本如下所示:

1 0 2 3 8 9, 1, A B C, P 2

代替

102389,1,ABC,P2

每个字符之间都有空格。仅将 .csv 重命名为 .txt 没有帮助。

答案1

尝试使用添加内容命令:

Add-Content cmdlet 将内容附加到指定的项目或文件。您可以通过在命令中键入内容或指定包含内容的对象来指定内容。

Get-Content -Path myfile1.csv | Select-object -skip 1 | Add-Content mynewfile.txt

答案2

在 PowerShell 5.1 中,默认编码Out-File统一码(UTF16-LE),而在 PowerShell 7.x 中,默认编码为utf8无BOM
显然,您的输入文件的编码方式不同,例如 ASCII 或 UTF-8。当向其中添加 UTF16-LE 文本时,结果就是您所体验到的。

Out-File 有一个参数,因此您可以通过使用而不是附加OR 来-Encoding修复您的代码。-Encoding defaultAdd-ContentOut-File

EncodingDefault是与系统活动代码页(通常为 ANSI)相对应的编码。Add
-Content 也有一个参数-Encoding。在 PowerShell 5.1 中,它默认为Default。在 PowerShell 7.x 中,默认编码为utf8NoBOM

相关内容