csv 파일 내용을 복사하여 텍스트 파일에 추가하려고 합니다. 복사 및 추가는 작동하지만 추가된 형식이 이상합니다.
이것은 내가 사용하는 명령입니다:
콘텐츠 가져오기 -Path myfile1.csv | 개체 선택 -건너뛰기 1 | 외부 파일 mynewfile.txt -추가
추가된 텍스트는 메모장에서 열면 다음과 같습니다.
1 0 2 3 8 9, 1, A B C, P 2
대신에
102389,1,ABC,P2
모든 문자 사이에는 공백이 있습니다. .csv의 이름을 .txt로 바꾸는 것만으로는 도움이 되지 않았습니다.
답변1
사용해 보세요콘텐츠 추가cmdlet:
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에서는 기본 인코딩은 다음과 같습니다.utf8NoBOM.
분명히 입력 파일은 ASCII 또는 UTF-8과 같이 다르게 인코딩됩니다. 여기에 UTF16-LE 텍스트를 추가하면 결과는 다음과 같습니다.
Out-File에는 매개변수가 있으므로 대신 을 사용하여 OR을 -Encoding
추가하여 코드를 수정할 수 있습니다 .-Encoding default
Add-Content
Out-File
인코딩은 Default
시스템의 활성 코드 페이지(보통 ANSI)에 해당하는 인코딩입니다.
Add-Content에도 매개변수가 있습니다 -Encoding
. PowerShell 5.1에서는 기본값이 Default
. PowerShell 7.x에서 기본 인코딩은 utf8NoBOM
.