PowerShell Set-Content Cmdlet

Migel Hewage Nimesha 2024년2월15일
  1. PowerShell의 Set-Content Cmdlet
  2. Set-Content Cmdlet을 사용하여 단일 파일에 텍스트 콘텐츠 쓰기
  3. Set-Content Cmdlet을 사용하여 여러 파일의 텍스트 콘텐츠 바꾸기
  4. Set-Content를 사용하여 PIPE를 통해 텍스트 콘텐츠 전달
PowerShell Set-Content Cmdlet

경우에 따라 동일한 텍스트 콘텐츠를 여러 텍스트 파일에 작성해야 할 수도 있습니다. PowerShell은 명령줄을 통해 텍스트 콘텐츠를 작성할 수 있는 유용한 cmdlet을 제공합니다.

이 문서에서는 Set-Content cmdlet에 중점을 둘 것입니다.

PowerShell의 Set-Content Cmdlet

Set-Content cmdlet은 새 텍스트 콘텐츠를 쓰거나 파일의 기존 텍스트를 바꿉니다. 이는 Linux의 > 연산자와 더 유사합니다.

Set-Content cmdlet은 지정된 파일에 텍스트를 추가하는 Add-Content 문자열 처리 cmdlet과 다릅니다. scSet-Content 명령의 별칭으로 사용할 수 있습니다.

통사론:

Set-Content
    [-Path_to_file] <string[]>
    [-Value] <Object[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-NoNewline]
    [-Encoding <Encoding>]
    [-AsByteStream]
    [-Stream <string>]
    [<CommonParameters>]

이 명령은 꽤 많은 수의 인수를 사용하며 몇 가지 목적은 다음 섹션에 설명되어 있습니다.

모수 설명
-Path_to_file 기존 텍스트 파일 경로를 지정하거나 지정된 경로에 새 경로를 만들 수 있습니다.
-Value 이 매개변수는 작성할 텍스트 콘텐츠를 전달하는 데 사용됩니다.
-Force -Force 인수는 읽기 전용 파일의 내용을 대체합니다.
-Encoding 대상 파일의 텍스트 인코딩은 기본적으로 utf8NoBOM으로 설정됩니다.
-Exclude 이 작업에서 제외해야 하는 항목은 문자열 배열로 지정됩니다.
-Include 이는 -Exclude 인수의 반대입니다. 이 인수는 Set-Content 작업에 포함되어야 하는 항목의 배열을 지정합니다.
-PassThru PassThru 인수가 지정된 경우 명령은 텍스트 파일에 추가된 텍스트 콘텐츠를 출력합니다.

일반적으로 -Value 매개변수는 일반적으로 파일에 작성된 텍스트 내용을 지정하는 데 사용됩니다. 또한 다른 개체의 텍스트 콘텐츠도 파이프할 수 있습니다.

문자열이 아닌 개체를 Set-Content 명령에 전달하면 먼저 문자열이 아닌 개체를 문자열로 변환하고 파일에 씁니다.

Set-Content Cmdlet을 사용하여 단일 파일에 텍스트 콘텐츠 쓰기

현재 존재하지 않는 sometext.txt라는 파일에 텍스트 내용을 작성해 봅시다. 따라서 Set-Content 명령은 먼저 이 파일을 만들고 -Value 인수와 함께 전달된 내용을 작성합니다.

명령:

Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."

텍스트 파일 생성 및 내용 작성 명령

출력:

텍스트 파일 생성 및 콘텐츠 출력 쓰기

Set-Content Cmdlet을 사용하여 여러 파일의 텍스트 콘텐츠 바꾸기

세 개의 파일 file1.txt, file2.txt 및 file3.txt가 있다고 가정합니다. 이 세 파일의 내용을 다음 텍스트로 바꿉니다.

Hello, i would be appeared in all the three files!

이 경우 Set-Content 명령은 와일드카드 문자를 사용하여 주어진 세 파일을 일치시킵니다.

명령:

Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"

Set-Content Cmdlet을 사용하여 여러 파일 명령의 텍스트 내용 바꾸기

세 개의 파일은 file* txt로 지정된 패턴과 일치하며, 명령이 file 구로 시작하는 모든 파일과 일치하도록 합니다.

출력:

Set-Content Cmdlet을 사용하여 여러 파일 출력에서 텍스트 내용 바꾸기

Set-Content를 사용하여 PIPE를 통해 텍스트 콘텐츠 전달

항상 -Value 인수를 지정할 필요는 없습니다. 대신 다음과 같이 Set-Content에 텍스트 개체를 파이프할 수 있습니다.

명령:

(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt

Get-Content cmdlet은 file1.txt 파일에서 텍스트 콘텐츠를 읽습니다. 그런 다음 replace 명령을 사용하여 all the three files!를 교체합니다. file4.txt가 포함된 텍스트.

마지막으로 구성된 텍스트는 file4.txt 파일에 작성됩니다.

출력:

Set-Content를 사용하여 PIPE 출력을 통해 텍스트 콘텐츠 전달

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.