다음을 통해 공유


Add-Content

파일에 단어 추가와 같이 지정된 항목에 콘텐츠를 추가합니다.

구문

Path (기본값)

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

LiteralPath

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

Description

Add-Content cmdlet은 지정된 항목 또는 파일에 콘텐츠를 추가합니다. 콘텐츠는 파이프라인에서 전달되거나 Value 매개 변수를 사용하여 지정할 수 있습니다.

다음 예제에 대한 파일 또는 디렉터리를 만들어야 하는 경우 New-Item참조하세요.

예제

예제 1: 예외가 있는 모든 텍스트 파일에 문자열 추가

다음은 현재 디렉터리의 텍스트 파일에 값을 추가하지만 파일 이름에 따라 파일을 제외하는 예제입니다.

Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'

Path 매개 변수는 현재 디렉터리의 모든 .txt 파일을 지정하지만 Exclude 매개 변수는 지정된 패턴과 일치하는 파일 이름을 무시합니다. Value 매개 변수는 파일에 기록되는 텍스트 문자열을 지정합니다.

콘텐츠 가져오기 사용하여 이러한 파일의 내용을 표시합니다.

예제 2: 지정된 파일의 끝에 날짜 추가

다음은 현재 디렉터리의 파일에 날짜를 추가하고 PowerShell 콘솔에 날짜를 표시하는 예제입니다.

Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log
Tuesday, May 14, 2019 8:24:27 AM
Tuesday, May 14, 2019 8:24:27 AM
5/14/2019 8:24:27 AM

Add-Content cmdlet은 현재 디렉터리에 두 개의 새 파일을 만듭니다. Value 매개 변수에는 Get-Date cmdlet의 출력이 포함됩니다. PassThru 매개 변수는 파이프라인에 추가된 내용을 출력합니다. 출력을 받을 다른 cmdlet이 없으므로 PowerShell 콘솔에 표시됩니다. Get-Content cmdlet은 업데이트된 파일 DateTimeFile1.log표시합니다.

예제 3: 지정된 파일의 내용을 다른 파일에 추가

이 예제에서는 파일에서 콘텐츠를 가져오고 변수에 콘텐츠를 저장합니다. 변수는 콘텐츠를 다른 파일에 추가하는 데 사용됩니다.

$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
  • Get-Content cmdlet은 CopyFromFile.txt 내용을 가져오고 내용을 $From 변수에 저장합니다.
  • Add-Content cmdlet은 CopyToFile.txt 변수의 내용을 사용하여 $From 파일을 업데이트합니다.
  • Get-Content cmdlet은 CopyToFile.txt표시합니다.

예제 4: 파이프라인을 사용하여 지정된 파일의 내용을 다른 파일에 추가합니다.

이 예제에서는 파일에서 콘텐츠를 가져와서 Add-Content cmdlet으로 파이프합니다.

Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt

Get-Content cmdlet은 CopyFromFile.txt내용을 가져옵니다. Add-Content cmdlet으로 결과가 전달되어 CopyToFile.txt이 업데이트됩니다. 마지막 Get-Content cmdlet은 CopyToFile.txt표시합니다.

예제 5: 새 파일 만들기 및 콘텐츠 복사

다음은 새 파일을 만들고 기존 파일의 콘텐츠를 새 파일에 복사하는 예제입니다.

Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
  • Add-Content cmdlet은 경로 매개 변수를 사용하여 현재 디렉터리에 새 파일을 만듭니다.
  • Get-Content cmdlet은 CopyFromFile.txt 기존 파일의 내용을 가져와서 Value 매개 변수에 전달합니다. Get-Content cmdlet 주위의 괄호는 Add-Content 명령이 시작되기 전에 명령이 완료되는지 확인합니다.
  • Get-Content cmdlet은 NewFile.txt새 파일의 내용을 표시합니다.

예제 6: 읽기 전용 파일에 콘텐츠 추가

이 명령은 IsReadOnly 파일 특성이 true 설정된 경우에도 파일에 값을 추가합니다. 읽기 전용 파일을 만드는 단계는 예제에 포함되어 있습니다.

New-Item -Path .\IsReadOnlyTextFile.txt -ItemType File
Set-ItemProperty -Path .\IsReadOnlyTextFile.txt -Name IsReadOnly -Value $true
Get-ChildItem -Path .\IsReadOnlyTextFile.txt
Add-Content -Path .\IsReadOnlyTextFile.txt -Value 'Add value to read-only text file' -Force
Get-Content -Path .\IsReadOnlyTextFile.txt
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar--         1/28/2019     13:35              0 IsReadOnlyTextFile.txt
  • New-Item cmdlet은 PathItemType 매개 변수를 사용하여 현재 디렉터리에 파일 IsReadOnlyTextFile.txt 만듭니다.
  • Set-ItemProperty cmdlet은 NameValue 매개 변수를 사용하여 파일의 IsReadOnly 속성을 True로 변경합니다.
  • Get-ChildItem cmdlet은 파일이 비어 있고(0) 읽기 전용 특성(r)을 포함합니다.
  • Add-Content cmdlet은 Path 매개 변수를 사용하여 파일을 지정합니다. Value 매개 변수에는 파일에 추가할 텍스트 문자열이 포함됩니다. Force 매개 변수는 텍스트를 읽기 전용 파일에 씁니다.
  • Get-Content cmdlet은 Path 매개 변수를 사용하여 파일의 내용을 표시합니다.

읽기 전용 특성을 제거하려면 Set-ItemProperty 명령을 사용하며, 매개 변수를 False로 설정합니다.

예제 7: Add-Content 필터 사용

Add-Content cmdlet에 필터를 지정할 수 있습니다. 필터를 사용하여 Path 매개 변수를 한정하는 경우 경로의 내용을 나타내기 위해 후행 별표(*)를 포함해야 합니다.

다음 명령은 *.txt 디렉터리에 있는 모든 C:\Temp 파일의 내용을 "완료"라는 단어를 추가합니다.

Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"

매개 변수

-AsByteStream

콘텐츠를 바이트 스트림으로 읽어야 되도록 지정합니다. 이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

인코딩 매개 변수와 함께 AsByteStream 매개 변수를 사용할 때 경고가 발생합니다. AsByteStream 매개 변수는 인코딩을 무시하고 출력은 바이트 스트림으로 반환됩니다.

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:cf(cf)

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Credential

비고

이 매개 변수는 PowerShell과 함께 설치된 공급자에서 지원되지 않습니다. 다른 사용자를 가장하거나 이 cmdlet을 실행할 때 자격 증명을 높이려면 Invoke-Command사용합니다.

매개 변수 속성

형식:PSCredential
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Encoding

대상 파일의 인코딩 형식을 지정합니다. 기본값은 utf8NoBOM입니다.

인코딩은 FileSystem 공급자가 Add-Content cmdlet에 추가하는 동적 매개 변수입니다. 이 매개 변수는 파일 시스템 드라이브에서만 작동합니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • ascii: ASCII(7비트) 문자 집합에 대한 인코딩을 사용합니다.
  • ansi: 현재 문화권의 ANSI 코드 페이지에 대한 인코딩을 사용합니다. 이 옵션은 PowerShell 7.4에 추가되었습니다.
  • bigendianunicode: big-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • bigendianutf32: big-endian 바이트 순서를 사용하여 UTF-32 형식으로 인코딩합니다.
  • oem: MS-DOS 및 콘솔 프로그램에 기본 인코딩을 사용합니다.
  • unicode: UTF-16 형식으로 little-endian 바이트 순서를 사용하여 인코딩합니다.
  • utf7: UTF-7 형식으로 인코딩합니다.
  • utf8: UTF-8 형식으로 인코딩합니다.
  • utf8BOM: BOM(바이트 순서 표시)을 사용하여 UTF-8 형식으로 인코딩
  • utf8NoBOM: BOM(바이트 순서 표시)이 없는 UTF-8 형식으로 인코딩
  • utf32: UTF-32 형식으로 인코딩합니다.

PowerShell 6.2부터 인코딩 매개 변수는 등록된 코드 페이지(예: -Encoding 1251) 또는 등록된 코드 페이지의 문자열 이름(예: -Encoding "windows-1251")의 숫자 ID를 허용합니다. 자세한 내용은 Encoding.CodePage.NET 설명서를 참조하세요.

PowerShell 7.4부터 Ansi 매개 변수의 값을 사용하여 현재 문화권의 ANSI 코드 페이지에 대한 숫자 ID를 수동으로 지정할 필요 없이 전달할 수 있습니다.

비고

UTF-7*는 더 이상 사용하지 않는 것이 좋습니다. PowerShell 7.1을 기준으로 utf7 매개 변수에 대한 지정하면 경고가 기록됩니다.

매개 변수 속성

형식:Encoding
Default value:UTF8NoBOM
허용되는 값:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Exclude

문자열 배열로 이 cmdlet이 작업에서 제외하는 항목 또는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt)을 입력합니다. 와일드카드 문자가 허용됩니다. Exclude 매개 변수는 와일드카드 문자가 C:\Windows\* 디렉터리의 내용을 지정하는 C:\Windows같은 항목의 내용을 명령에 포함하는 경우에만 유효합니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Filter

Path 매개 변수를 한정할 필터를 지정합니다. FileSystem 공급자는 필터 사용을 지원하는 유일한 설치된 PowerShell 공급자입니다. FileSystem 필터 언어의 구문은 about_Wildcards에서 찾을 수 있습니다. 필터는 cmdlet이 개체를 가져올 때 제공자가 이를 적용하기 때문에, 개체가 검색된 후 PowerShell이 필터링을 하는 것보다 더 효율적입니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Force

읽기 전용 특성을 재정의하여 읽기 전용 파일에 콘텐츠를 추가할 수 있습니다. 예를 들어 강제 읽기 전용 특성을 재정의하지만 파일 사용 권한은 변경되지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Include

문자열 배열로 이 cmdlet이 작업에 포함하는 항목 또는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드 문자가 허용됩니다. Include 매개 변수는 커맨드가 와일드카드 문자를 사용하여 C:\Windows\* 디렉터리의 내용을 지정하는 C:\Windows와 같은 항목의 내용을 포함할 때에만 유효합니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-LiteralPath

하나 이상의 위치에 대한 경로를 지정합니다. LiteralPath 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

자세한 내용은 about_Quoting_Rules참조하세요.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False
별칭:PSPath, Lp 로

매개 변수 집합

LiteralPath
Position:Named
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-NoNewline

이 cmdlet은 콘텐츠에 새 줄 또는 캐리지 리턴을 추가하지 않음을 나타냅니다.

입력 개체의 문자열 표현은 출력을 형성하기 위해 연결됩니다. 출력 문자열 사이에 공백이나 줄 바꿈이 삽입되지 않습니다. 마지막 출력 문자열 이후에 줄 바꿈이 추가되지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-PassThru

추가된 콘텐츠를 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Path

추가 콘텐츠를 받는 항목의 경로를 지정합니다. 와일드카드 문자가 허용됩니다. 경로는 컨테이너가 아닌 항목의 경로여야 합니다. 예를 들어 디렉터리의 경로가 아니라 하나 이상의 파일에 대한 경로를 지정해야 합니다. 여러 경로를 지정하는 경우 쉼표로 경로를 구분합니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

Path
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Stream

비고

이 매개 변수는 Windows에서만 사용할 수 있습니다.

콘텐츠에 대한 대체 데이터 스트림을 지정합니다. 스트림이 없으면 이 cmdlet이 스트림을 만듭니다. 와일드카드 문자는 지원되지 않습니다.

Stream은/는 FileSystem 공급자가 Add-Content에 추가하는 동적 매개 변수입니다. 이 매개 변수는 파일 시스템 드라이브에서만 작동합니다.

Add-Content cmdlet을 사용하여 Zone.Identifier같은 대체 데이터 스트림의 콘텐츠를 변경할 수 있습니다. 그러나 인터넷에서 다운로드되는 파일을 차단하는 보안 검사를 제거하는 방법으로 권장하지는 않습니다. 다운로드한 파일이 안전한지 확인하는 경우 Unblock-File cmdlet을 사용합니다.

이 매개 변수는 PowerShell 3.0에서 도입되었습니다. PowerShell 7.2를 기준으로 Add-Content 파일 및 디렉터리 모두에서 대체 데이터 스트림을 대상으로 지정할 수 있습니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Value

추가할 콘텐츠를 지정합니다. 따옴표 붙은 문자열을 입력합니다(예: 이 데이터는만 내부적으로 사용하거나 생성하는 Get-Date 개체와 같은 콘텐츠가 포함된 개체를 지정합니다.

경로가 문자열이기 때문에 해당 경로를 입력하여 파일의 내용을 지정할 수 없습니다. Get-Content 명령을 사용하여 콘텐츠를 가져와서 Value 매개 변수에 전달할 수 있습니다.

매개 변수 속성

형식:

Object[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:1
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:위스콘신

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

Object

값을 Add-Content으로 전달할 수 있습니다.

PSCredential

자격 증명을 Add-Content로 전달할 수 있습니다.

출력

None

기본적으로 이 cmdlet은 출력을 반환하지 않습니다.

String

PassThru 매개 변수를 사용하는 경우 이 cmdlet은 콘텐츠를 나타내는 System.String 개체를 반환합니다.

참고

PowerShell에는 Add-Content에 대한 다음과 같은 별칭들이 포함되어 있습니다.

  • Windows:

    • ac
  • 개체를 Add-Content파이프하면 개체가 항목에 추가되기 전에 문자열로 변환됩니다. 개체 형식은 문자열 형식을 결정하지만 형식은 개체의 기본 표시와 다를 수 있습니다. 문자열 형식을 제어하려면 보내는 cmdlet의 서식 매개 변수를 사용합니다.

  • Add-Content cmdlet은 모든 공급자가 노출하는 데이터를 사용하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 Get-PSProvider입력합니다. 추가 정보는 about_Providers를 참조하십시오.