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

  1. PowerShell의 Out-File 명령 소개
  2. PowerShell에서 파일에 추가하기 위해 -append 매개변수 사용하기
  3. PowerShell에서 출력 데이터 변경하기
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
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell Export