cat
Unix 에서 명령 의 기능을 복제하려고합니다 .
두 파일을 모두 변수로 명시 적으로 읽고 변수를 함께 연결 한 다음 연결된 변수를 작성하는 솔루션을 피하고 싶습니다.
답변
간단히 사용할 수 있습니다 cat example1.txt, example2.txt | sc examples.txt
. 이 스타일로 두 개 이상의 파일을 확실히 연결할 수 있습니다. 또한 파일 이름이 비슷한 경우 다음을 사용할 수 있습니다.
cat example*.txt | sc allexamples.txt
는 cat
별칭입니다 Get-Content
및 sc
별칭입니다 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 인코딩을 추가했습니다.