Powershell 將 csv 檔案中的文字附加到文字文件

Powershell 將 csv 檔案中的文字附加到文字文件

我正在嘗試複製 csv 文件內容並附加到文字檔案。複製和附加有效,但附加的格式很奇怪。

這是我使用的命令:

取得內容-路徑 myfile1.csv |選擇物件-跳過 1 |輸出檔 mynewfile.txt - 追加

在記事本中開啟時,附加文字如下所示:

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.

相關內容