다음을 통해 공유


New-Variable

새 변수를 만듭니다.

구문

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

Description

이 cmdlet은 New-Variable PowerShell에서 새 변수를 만듭니다. 변수를 만드는 동안 변수에 값을 할당하거나 값을 만든 후 할당하거나 변경할 수 있습니다.

매개 변수 New-Variable 를 사용하여 변수의 속성을 설정하고, 변수의 범위를 설정하고, 변수가 퍼블릭인지 프라이빗인지 확인할 수 있습니다.

일반적으로 변수 이름 및 해당 값(예: $Var = 3)을 입력하여 새 변수를 만들지만 cmdlet을 New-Variable 사용하여 해당 매개 변수를 사용할 수 있습니다.

예제

예제 1: 변수 만들기

New-Variable days

이 명령은 일이라는 새 변수를 만듭니다. Name 매개 변수를 입력할 필요는 없습니다.

예제 2: 변수 만들기 및 값 할당

New-Variable -Name "zipcode" -Value 98033

이 명령은 zipcode라는 변수를 만들고 값 98033을 할당합니다.

예제 3: ReadOnly 옵션을 사용하여 변수 만들기

PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024

New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (max:String) [New-Variable], SessionStateException
    + FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand

PS C:\> New-Variable -Name max -Value 1024 -Force

이 예제에서는 변수를 ReadOnly 덮어쓰지 않도록 보호하는 옵션을 New-Variable 사용하는 방법을 보여 줍니다.

첫 번째 명령은 Max라는 새 변수를 만들고 해당 값을 256으로 설정합니다. 값이 있는 Option 매개 변수를 ReadOnly사용합니다.

두 번째 명령은 동일한 이름의 두 번째 변수를 만들려고 합니다. 읽기 전용 옵션이 변수에 설정되어 있으므로 이 명령은 오류를 반환합니다.

세 번째 명령은 Force 매개 변수를 사용하여 변수에 대한 읽기 전용 보호를 재정의합니다. 이 경우 이름이 같은 새 변수를 만드는 명령이 성공합니다.

예제 4: 변수에 여러 옵션 할당

New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant

이 예제에서는 변수를 만들고 현재 범위에서 변수를 사용할 수 있도록 변수 및 Constant 옵션을 할당 AllScope 하고 새 범위를 만들고 변경하거나 삭제할 수 없습니다.

예제 5: 프라이빗 변수 만들기

이 명령은 모듈에서 프라이빗 변수의 동작을 보여 줍니다. 모듈에는 Get-Counter Counter라는 프라이빗 변수가 있는 cmdlet이 포함되어 있습니다. 이 명령은 Private 값이 있는 Visibility 매개 변수를 사용하여 변수를 만듭니다.

PS C:\> New-Variable -Name counter -Visibility Private

#Effect of private variable in a module.

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"
At line:1 char:1
+ $counter
+ ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (counter:String) [], SessionStateException
    + FullyQualifiedErrorId : VariableIsPrivate

PS C:\> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

샘플 출력은 프라이빗 변수의 동작을 보여줍니다. 모듈을 로드한 사용자는 Counter 변수의 값을 보거나 변경할 수 없지만, 카운터 변수는 모듈의 명령에 의해 읽고 변경할 수 있습니다.

예제 6: 공백이 있는 변수 만들기

이 예제에서는 공백이 있는 변수를 만들 수 있음을 보여 줍니다. 변수는 cmdlet을 사용 Get-Variable 하거나 중괄호로 변수를 구분하여 직접 액세스할 수 있습니다.

PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'

PS C:\> Get-Variable -Name 'with space'

Name                           Value
----                           -----
with space                     abc123xyz

PS C:\> ${with space}
abc123xyz

매개 변수

-Confirm

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

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

-Description

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

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

-Force

cmdlet이 기존 읽기 전용 변수와 이름이 같은 변수를 만듭니다.

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

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

-Name

새 변수의 이름을 지정합니다.

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

-Option

변수의 Options 속성 값을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

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

이러한 값은 플래그 기반 열거형으로 정의됩니다. 이 매개 변수를 사용하여 여러 값을 결합하여 여러 플래그를 설정할 수 있습니다. 값은 값 배열 또는 해당 값의 쉼표로 구분된 문자열로 Option 매개 변수에 전달할 수 있습니다. cmdlet은 이진 OR 연산을 사용하여 값을 결합합니다. 값을 배열로 전달하는 것이 가장 간단한 옵션이며 값에 대한 탭 완성을 사용할 수도 있습니다.

세션에 있는 모든 변수의 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:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Scope

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

  • Global - 전역 범위에서 만든 변수는 PowerShell 프로세스의 모든 위치에서 액세스할 수 있습니다.
  • Local - 로컬 범위는 현재 범위를 참조하며 컨텍스트에 따라 범위일 수 있습니다. Local 는 범위 매개 변수가 지정되지 않은 경우 기본 범위입니다.
  • Script - 스크립트 범위에서 만든 변수는 만든 스크립트 파일 또는 모듈 내에서만 액세스할 수 있습니다.
  • 현재 범위에 상대적인 숫자입니다(범위 수까지 0, 여기서 0은 현재 범위, 1은 부모, 2는 부모 범위의 부모 등). 음수는 사용할 수 없습니다.

참고 항목

또한 매개 변수는 .의 Private값을 허용합니다. Private 는 실제로 범위가 아니라 변수에 대한 선택적 설정입니다. 그러나 이 cmdlet과 Private 함께 값을 사용하면 변수의 표시 유형이 변경되지 않습니다. 자세한 내용은 about_Scopes 참조하세요.

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

-Value

변수의 초기 값을 지정합니다.

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

-Visibility

변수가 만들어진 세션 외부에 표시되는지 여부를 결정합니다. 이 매개 변수는 다른 사용자에게 전달할 스크립트 및 명령에 사용할 수 있습니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

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

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

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

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

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

입력

Object

모든 개체를 .에 파이프할 New-Variable수 있습니다.

출력

None

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

PSVariable

PassThru 매개 변수를 사용하는 경우 이 cmdlet은 새 변수를 나타내는 PSVariable 개체를 반환합니다.

참고

Windows PowerShell에는 다음 별칭이 포함됩니다.New-Variable

  • nv