我正在尝试复制 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 default
Add-Content
Out-File
EncodingDefault
是与系统活动代码页(通常为 ANSI)相对应的编码。Add
-Content 也有一个参数-Encoding
。在 PowerShell 5.1 中,它默认为Default
。在 PowerShell 7.x 中,默认编码为utf8NoBOM
。