다음을 통해 공유


Set-Variable

변수 값을 설정합니다. 요청한 이름이 있는 변수가 없으면 새로 만듭니다.

구문

Set-Variable [-Name] <string[]> [[-Value] <Object>] [-Description <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Set-Variable cmdlet은 지정된 변수에 값을 할당하거나 현재 값을 변경합니다. 변수가 없는 경우 cmdlet이 만듭니다.

매개 변수

-Description <string>

변수의 설명을 지정합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Exclude <string[]>

지정된 항목을 생략합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력하십시오. 와일드카드를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Force

기존 읽기 전용 변수와 이름이 같은 변수를 만들거나 읽기 전용 변수의 값을 변경할 수 있도록 허용합니다.

기본적으로 "ReadOnly" 또는 "Constant" 옵션 값이 없는 변수는 덮어쓸 수 있습니다. 자세한 내용은 Option 매개 변수를 참조하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Include <string[]>

지정된 항목만 변경합니다. 이 매개 변수의 값은 Name 매개 변수를 한정합니다. 이름 또는 이름 패턴(예: "c*")을 입력하십시오. 와일드카드를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Name <string[]>

변수 이름을 지정합니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Option <ScopedItemOptions>

변수의 Options 속성 값을 변경합니다. 유효한 값은 다음과 같습니다.

-- None: 옵션을 설정하지 않습니다. "None"이 기본값입니다.

-- ReadOnly: Force 매개 변수를 사용하지 않으면 변수의 속성을 변경할 수 없습니다. Remove-Variable을 사용하여 변수를 삭제할 수 있습니다.

-- Constant: 변수를 삭제할 수 없고 해당 속성도 변경할 수 없습니다. "Constant"는 별칭을 만드는 동안에만 사용할 수 있습니다. 기존 변수의 옵션을 "Constant"로 변경할 수 없습니다.

-- Private: Scope 매개 변수에서 지정한 범위 내에서만 변수를 사용할 수 있습니다. 하위 범위에서도 이 값을 상속합니다.

-- AllScope: 변수를 새로 만든 범위로 복사합니다.

변수의 Options 속성을 보려면 "get-variable| Format-Table -property name, options -autosize"를 입력하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-PassThru

새 변수를 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet에서는 출력을 생성하지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Scope <string>

변수의 범위를 결정합니다. 유효한 값은 "Global", "Local", "Script" 또는 현재 범위와 관련된 수(0부터 범위의 수까지, 여기서 0은 현재 범위이고 1은 그 상위 범위)입니다. "Local"이 기본값입니다. 자세한 내용은 about_Scopes를 참조하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Value <Object>

변수의 값을 지정합니다.

필수 여부

false

위치

2

기본값

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

-Visibility <SessionStateEntryVisibility>

변수를 만든 세션 외부에서도 변수가 표시되는지를 결정합니다. 이 매개 변수는 다른 사용자에게 전달할 스크립트 및 명령에 사용하기 위한 것입니다.

유효한 값은 다음과 같습니다.

-- Public: 변수가 표시됩니다. "Public"이 기본값입니다.

-- Private: 변수가 표시되지 않습니다.

개인 변수는 Get-Variable에서 반환하는 목록과 같은 변수 목록이나 Variable: 드라이브의 표시에 나타나지 않습니다. 개인 변수의 값을 읽거나 변경하는 명령을 실행하면 오류가 반환됩니다. 그러나 변수를 정의한 세션에서 명령을 작성한 경우에는 개인 변수를 사용하는 명령을 실행할 수 있습니다.

필수 여부

false

위치

named

기본값

Public

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Confirm

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

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.Object

변수 값을 나타내는 개체를 Set-Variable로 파이프할 수 있습니다.

출력

없음 또는 System.Management.Automation.PSVariable

PassThru 매개 변수를 사용하는 경우 Set-Variable은 새 변수나 변경된 변수를 나타내는 System.Management.Automation.PSVariable 개체를 생성합니다. 그렇지 않으면 아무 출력도 생성하지 않습니다.

예 1

C:\PS>set-variable -name desc -value "A description"

C:\PS>get-variable -name desc

설명
-----------
이들 명령은 "desc" 변수 값을 "A description"으로 설정한 다음 이 변수의 값을 가져옵니다.





예 2

C:\PS>set-variable -name processes -value (Get-Process) -option constant -scope global -description "All processes" -passthru | format-list -property *

설명
-----------
이 명령은 시스템의 모든 프로세스가 포함된 읽기 전용의 전역 변수를 만든 다음 변수의 모든 속성을 표시합니다.

이 명령은 Set-Variable cmdlet을 사용하여 변수를 만들고 PassThru 매개 변수를 사용하여 새 변수를 나타내는 개체를 만든 다음 파이프라인 연산자(|)를 통해 Format-List cmdlet에 전달합니다. 이 명령은 Format-List의 Property 매개 변수를 모두(*) 값과 함께 사용하여 새로 만들어진 변수의 모든 속성을 표시합니다. 

"(Get-Process)" 값은 변수에 저장하기 전에 실행되도록 괄호로 묶습니다. 그렇지 않으면 변수에 "Get-Process"라는 단어가 포함됩니다.





예 3

C:\PS># set-variable -name counter -visibility private

C:\PS> new-variable -name counter -visibility public -value 26

C:\PS> $counter
26

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26

C:\PS> set-variable -name counter -visibility private

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> .\use-counter.ps1
Commands completed successfully.

설명
-----------
이 명령은 변수의 표시를 "Private"로 변경하는 방법을 보여 줍니다. 이 변수는 필요한 권한을 가진 스크립트를 통해 읽거나 변경할 수 있지만 사용자에게 표시되지는 않습니다.

샘플 출력은 public과 private 변수 동작의 차이를 보여 줍니다.





참고 항목

개념

Get-Variable
New-Variable
Remove-Variable
Clear-Variable