다음을 통해 공유


Set-Variable

변수의 값을 설정합니다. 요청된 이름의 변수가 없으면 변수를 만듭니다.

구문

Set-Variable
   [-Name] <String[]>
   [[-Value] <Object>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Description <String>]
   [-Option <ScopedItemOptions>]
   [-Force]
   [-Visibility <SessionStateEntryVisibility>]
   [-PassThru]
   [-Scope <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

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

예제

예제 1: 변수 설정 및 해당 값 가져오기

PS C:\> Set-Variable -Name "desc" -Value "A description"
PS C:\> Get-Variable -Name "desc"

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

예제 2: 전역 읽기 전용 변수 설정

PS C:\> 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 속성 매개 변수를 모두 값(*)과 함께 사용하여 새로 만든 변수의 모든 속성을 표시합니다.

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

예제 3: 공용 및 프라이빗 변수 이해

PS C:\> New-Variable -Name "counter" -Visibility Public -Value 26
PS C:\> $Counter
26
PS C:\> Get-Variable c*

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

PS C:\> Set-Variable -Name "counter" -Visibility Private
PS C:\> Get-Variable c*

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

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

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

이 명령은 변수의 표시 유형을 Private으로 변경하는 방법을 보여줍니다. 이 변수는 필요한 권한이 있는 스크립트에서 읽고 변경할 수 있지만 사용자에게는 표시되지 않습니다.

샘플 출력은 퍼블릭 및 프라이빗 변수의 동작 차이를 보여 줍니다.

매개 변수

-Confirm

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

형식:SwitchParameter
별칭:cf
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Description

변수에 대한 설명을 지정합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Exclude

이 cmdlet이 작업에서 제외하는 항목의 배열을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt)을 입력합니다. 와일드카드가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-Force

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

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

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Include

이 cmdlet이 작업에 포함하는 항목의 배열을 지정합니다. 이 매개 변수의 값은 Name 매개 변수를 한정합니다. 이름 또는 이름 패턴(예: c*)을 입력합니다. 와일드카드가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-Name

변수 이름을 지정합니다.

형식:String[]
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Option

변수의 Options 속성 값을 지정합니다.

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

  • 없음: 옵션을 설정하지 않습니다. ("None"이 기본값입니다.)
  • ReadOnly: 삭제할 수 있습니다. Force 매개 변수를 사용하는 경우를 제외하고는 변경할 수 없습니다.
  • 상수: 삭제하거나 변경할 수 없습니다. "상수"는 변수를 만들 때만 유효합니다. 기존 변수의 옵션을 "상수"로 변경할 수 없습니다.
  • Private: 변수는 현재 범위에서만 사용할 수 있습니다.
  • AllScope: 변수가 생성된 모든 새 범위에 복사됩니다.

세션에 있는 모든 변수의 Options 속성을 보려면 Get-Variable | Format-Table -Property name, options -Autosize입력합니다.

형식:ScopedItemOptions
허용되는 값:None, ReadOnly, Constant, Private, AllScope, Unspecified
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-PassThru

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

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Scope

변수의 범위를 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 글로벌
  • 현지
  • 각본
  • 민간의
  • 현재 범위에 상대적인 숫자입니다(범위 수까지 0, 여기서 0은 현재 범위이고 1은 부모).

로컬이 기본값입니다.

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

형식:String
Position:Named
Default value:Local
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Value

변수의 값을 지정합니다.

형식:Object
Position:1
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Visibility

변수가 만들어진 세션 외부에 표시되는지 여부를 결정합니다. 이 매개 변수는 다른 사용자에게 전달될 스크립트 및 명령에 사용하도록 설계되었습니다.

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

  • Public: 변수가 표시됩니다. ("Public"은 기본값입니다.)
  • Private: 변수가 표시되지 않습니다.

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

형식:SessionStateEntryVisibility
허용되는 값:Public, Private
Position:Named
Default value:Public
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WhatIf

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

형식:SwitchParameter
별칭:wi
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

Object

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

출력

None or System.Management.Automation.PSVariable

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