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 변수 동작의 차이를 보여 줍니다.