我正在嘗試複製 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 default
Add-Content
Out-File
EncodingDefault
是對應系統活動代碼頁的編碼(通常是 ANSI)
Add-Content 還有一個參數-Encoding
。在 PowerShell 5.1 中,它預設為Default
.在 PowerShell 7.x 中,預設編碼是utf8NoBOM
.