시장에서 텍스트 파일에 출력을 저장할 수 있는 PowerShell cmdlet을 찾고 있다면 행운입니다. PowerShell Out-File
cmdlet을 사용하는 방법과 함께 인기 있는 Out-File -Append
매개변수를 사용하는 방법을 배우게 될 것입니다!
Out-File이 어떻게 작동하는지?
이 PowerShell cmdlet은 간단합니다. 유일한 목적은 받은 출력을 저장하고 텍스트 파일에 저장하는 것입니다.
이것은 표준 출력 리디렉션 연산자 (>
)를 대체하도록 설계되었습니다. DOS 시대부터 출력을 파일로 리디렉션할 수 있었습니다. 이 cmdlet은 PowerShell에서 그것을 수행하는 방법입니다.
Out-File cmdlet은 일반적으로 PowerShell 파이프라인의 끝에서 사용됩니다. 유일한 목적은 원시 출력을 무조건적으로 텍스트 파일로 보내는 것입니다. 출력이 작성되는 방법을 조정할 수 있는 방법이 매우 적습니다.
파일로 출력 보내기
컴퓨터의 모든 Windows 서비스 목록을 반환하는 스크립트가 있다고 가정해 보겠습니다. Get-Service
를 실행하면 콘솔에서 예상할 수 있는 모든 객체를 받게 됩니다.
그러나 그 출력을 텍스트 파일에 저장하고 싶을 수도 있습니다. Out-File
cmdlet을 사용하면 이를 수행할 수 있습니다. 파이프라인을 통해 거의 모든 것을 전달하여 사용할 수 있습니다.
아래에서 Get-Service
의 출력이 콘솔에 표시된 것과 동일한 텍스트 파일을 생성한 cmdlet으로 전송되었습니다. Services.txt라는 이름의 텍스트 파일이 생성되었고, 정확히 콘솔에서 보는 것과 같은 내용이 포함되어 있습니다.
파일에 추가하기
기본적으로 FilePath
매개변수를 통해 제공된 텍스트 파일에는 무엇이든 덮어쓰기를 합니다. 그러나 Append
매개변수를 사용하여 이 동작을 무시할 수 있습니다.
아마도 파일에 콘솔 출력을 축적하고 있으며 덮어쓰기 대신 파일에 텍스트를 추가하려고 할 것입니다. Append
매개변수가 유용할 것입니다.
Out-File -Append
매개변수를 사용하면 아래에서 볼 수 있듯이, 사용하지 않으면 C:\File.txt가 덮어쓰기됩니다. 그러나 Append
매개변수를 추가하면 즉시 출력이 끝에 추가됩니다.
출력 변경하기
기본적으로 이 cmdlet은 콘솔에 표시된 내용을 복제하려고 시도하지만 조작할 수 있는 몇 가지 방법이 있습니다. 예를 들어, cmdlet에는 모든 새 줄 문자를 단순히 제거하는 NoNewLine
매개변수가 있습니다.
또는 각 행의 텍스트를 특정 문자 수로 자를 수도 있습니다. Width
매개변수를 사용하여.
결론

실제 시나리오에서는 이 cmdlet이 작동하지만 파일에 출력을 저장하는 더 나은 방법이 있습니다.
이 cmdlet은 출력을 조작할 수 있는 실질적인 옵션을 제공하지 않습니다. 단순히 콘솔에 표시된 내용을 정확히 텍스트 파일로 저장합니다. 이 cmdlet은 PowerShell 트랜스크립트와 유사하여 모든 것을 직접 텍스트 파일로 작성합니다.
Add-Content
또는 Set-Content
cmdlet은 항상 더 많은 유연성을 가지고 있지만 PowerShell 출력을 파일로 빠르게 가져오려면 Out-File
을 사용하는 것이 좋습니다.