PowerShell Set-Content Cmdlet
-
PowerShell의
Set-Content
Cmdlet -
Set-Content
Cmdlet을 사용하여 단일 파일에 텍스트 콘텐츠 쓰기 -
Set-Content
Cmdlet을 사용하여 여러 파일의 텍스트 콘텐츠 바꾸기 -
Set-Content
를 사용하여 PIPE를 통해 텍스트 콘텐츠 전달
경우에 따라 동일한 텍스트 콘텐츠를 여러 텍스트 파일에 작성해야 할 수도 있습니다. PowerShell은 명령줄을 통해 텍스트 콘텐츠를 작성할 수 있는 유용한 cmdlet을 제공합니다.
이 문서에서는 Set-Content
cmdlet에 중점을 둘 것입니다.
PowerShell의 Set-Content
Cmdlet
Set-Content
cmdlet은 새 텍스트 콘텐츠를 쓰거나 파일의 기존 텍스트를 바꿉니다. 이는 Linux의 >
연산자와 더 유사합니다.
Set-Content
cmdlet은 지정된 파일에 텍스트를 추가하는 Add-Content
문자열 처리 cmdlet과 다릅니다. sc
는 Set-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!"
세 개의 파일은 file* txt
로 지정된 패턴과 일치하며, 명령이 file
구로 시작하는 모든 파일과 일치하도록 합니다.
출력:
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
파일에 작성됩니다.
출력:
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.