[powershell] PowerShell에서 두 개의 텍스트 파일을 연결하는 방법은 무엇입니까?

catUnix 에서 명령 의 기능을 복제하려고합니다 .

두 파일을 모두 변수로 명시 적으로 읽고 변수를 함께 연결 한 다음 연결된 변수를 작성하는 솔루션을 피하고 싶습니다.



답변

간단히 사용할 수 있습니다 cat example1.txt, example2.txt | sc examples.txt. 이 스타일로 두 개 이상의 파일을 확실히 연결할 수 있습니다. 또한 파일 이름이 비슷한 경우 다음을 사용할 수 있습니다.

cat example*.txt | sc allexamples.txt

cat별칭입니다 Get-Contentsc별칭입니다 Set-Content.

참고 1 : 후자의 방법에주의하십시오. 출력을 시도하면 examples.txt(또는 패턴과 일치하는 유사) PowerShell은 무한 루프에 빠집니다! (방금 테스트했습니다).

참고 2 :로 파일로 출력하면 >문자 인코딩이 유지되지 않습니다! 이것이 Set-Content( sc) 사용을 권장하는 이유 입니다.


답변

사용하지 마십시오 >. 문자 인코딩을 엉망으로 만듭니다. 사용하다:

Get-Content files.* | Set-Content newfile.file


답변

에서는 cmd다음을 수행 할 수 있습니다.

copy one.txt+two.txt+three.txt four.txt

PowerShell에서는 다음과 같습니다.

cmd /c copy one.txt+two.txt+three.txt four.txt

PowerShell 방식은 gc 를 사용하는 것이지만 위의 방법은 특히 대용량 파일의 경우 매우 빠릅니다. 또한 스위치를 사용하여 ASCII 가 아닌 파일에서도 사용할 수 /B있습니다.


답변

Add-Content cmdlet을 사용할 수 있습니다 . 첫 번째 파일의 내용을 검색하지 않기 때문에 다른 솔루션보다 조금 더 빠를 수 있습니다.

gc .\file2.txt| Add-Content -Path .\file1.txt


답변

명령 프롬프트에서 파일을 연결하려면

type file1.txt file2.txt file3.txt > files.txt

PowerShell은 type명령을 로 변환합니다. Get-Content즉, type명령에 Get-Content파일을 구분하는 쉼표가 필요 하기 때문에 PowerShell 에서 명령을 사용할 때 오류가 발생 합니다. PowerShell의 동일한 명령은 다음과 같습니다.

Get-Content file1.txt,file2.txt,file3.txt | Set-Content files.txt


답변

특정 매개 변수 (예 : 날짜 시간)로 파일을 주문해야하는 경우 :

gci *.log | sort LastWriteTime | % {$(Get-Content $_)} | Set-Content result.log


답변

나는 사용했다 :

Get-Content c:\FileToAppend_*.log | Out-File -FilePath C:\DestinationFile.log
-Encoding ASCII -Append

이것은 잘 추가되었습니다. 명시 적 인코딩없이 메모장 ++에 표시되는 nul 문자를 제거하기 위해 ASCII 인코딩을 추가했습니다.