PowerShell을 사용하여 출력을 파일로 내보내는 방법

여러 스크립팅 언어는 데이터를 파일로 내보내는 함수나 메서드를 가지고 있습니다. 이전의 MS-DOS 시절에도 레거시 리다이렉션 연산자(>
)를 사용하여 편리하게 이 작업을 수행할 수 있었습니다.
이 기사에서는 출력 데이터를 파일로 내보내고, 기존 파일에 데이터를 추가하며, PowerShell을 사용하여 출력을 조작하는 방법에 대해 논의할 것입니다.
PowerShell의 Out-File
명령 소개
윈도우 서비스 목록을 반환하는 스크립트가 있다고 가정해 보겠습니다. Get-Service
를 실행하면 콘솔에서 기대할 수 있는 모든 객체를 받을 수 있습니다.
하지만 출력 결과를 텍스트 파일로 저장하고 싶을 수 있습니다. Out-File
명령은 이를 위한 훌륭한 방법입니다.
우리는 파이프라인 연산자를 통해 거의 모든 것을 파이핑함으로써 Out-File
을 사용할 수 있습니다. 아래에서 확인할 수 있듯이, 스크립트는 Get-Service
의 출력을 cmdlet로 보내고, 그 결과 콘솔에 표시된 것과 동일한 내용을 포함하는 Services.txt
라는 텍스트 파일을 생성했습니다.
예제 코드:
Get-Service | Out-File -FilePath C:\PS\Services.txt
Get-Content C:\PS\Services.txt
출력:
Status Name DisplayName
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
<SNIP>
PowerShell에서 파일에 추가하기 위해 -append
매개변수 사용하기
기본적으로, Out-File
명령은 -FilePath
매개변수를 통해 제공된 텍스트 파일의 모든 내용을 덮어씁니다. 그러나 우리는 -Append
매개변수를 사용하여 이 동작을 재정의할 수 있습니다.
아마 우리는 콘솔 출력을 파일에 축적하고 있으며, 덮어쓰는 것보다 파일에 텍스트를 추가하고 싶을 것입니다. -Append
매개변수는 여러분의 최고의 친구입니다.
Out-File -Append
매개변수를 사용하지 않으면 C:\PS\File.txt
의 내용이 덮어씌워집니다. 하지만 -Append
매개변수를 추가하자마자, 출력이 끝에 추가됩니다.
예제 코드:
'firststring' | Out-File -FilePath C:\PS\File.txt
Get-Content -Path C:\PS\File.txt
'secondstring' | Out-File -FilePath C:\PS\File.txt -Append
Get-Content C:\PS\File.txt
출력:
firststring
firststring
secondstring
PowerShell에서 출력 데이터 변경하기
기본적으로 이 cmdlet은 콘솔에 표시된 것을 복제하려고 시도하지만, 조작하는 방법도 있습니다. 예를 들어, 이 cmdlet에는 모든 줄 바꿈 문자를 제거하는 -NoNewLine
매개변수가 있습니다.
예제 코드:
Get-Service | Out-File -FilePath C:\PS\Services.txt -NoNewline
Get-Content C:\PS\Services.txt
출력:
Status Name DisplayName
------ ---- -----------
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application La
또는, -Width
매개변수를 사용하여 각 행의 텍스트를 특정 문자 수에서 자를 수 있습니다.
예제 코드:
Get-Service | Out-File -FilePath C:\PS\Services.txt -Width 30
Get-Content C:\PS\Services.txt
출력:
Status Name DisplayName
------ ----- -----------
Stopped AJRouter Al
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn