다음을 통해 공유


New-Variable

새 변수를 만듭니다.

구문

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

Description

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

New-Variable 매개 변수를 사용하여 변수의 속성을 설정하고, 변수의 범위를 설정하고, 변수가 public 또는 private인지 확인할 수 있습니다.

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

예제

예제 1: 변수 만들기

PS C:\> New-Variable days

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

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

PS C:\> 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 옵션을 사용하여 변수를 덮어쓰지 않도록 보호하는 방법을 보여 줍니다.

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

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

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

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

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라는 프라이빗 변수가 있는 Get-Counter cmdlet이 포함되어 있습니다. 이 명령은 private 값과 함께 Visibility 매개 변수를 사용하여 변수를 만듭니다.

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

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

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

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

매개 변수

-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 속성 값을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 없음. 옵션을 설정하지 않습니다. (기본값은 없음)입니다.
  • ReadOnly. 삭제할 수 있습니다. Force 매개 변수를 사용하는 경우를 제외하고는 변경할 수 없습니다.
  • 민간의. 변수는 현재 범위에서만 사용할 수 있습니다.
  • 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:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Scope

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

  • 글로벌. 전역 범위에서 만든 변수는 PowerShell 프로세스의 모든 위치에서 액세스할 수 있습니다.
  • 현지. 로컬 범위는 현재 범위를 참조하며 컨텍스트에 따라 모든 범위가 될 수 있습니다.
  • 각본. 스크립트 범위에서 만든 변수는 만든 스크립트 파일 또는 모듈 내에서만 액세스할 수 있습니다.
  • 민간의. 프라이빗 범위에서 만든 변수는 해당 범위 외부에 액세스할 수 없습니다. 프라이빗 범위를 사용하여 다른 범위에서 이름이 같은 항목의 프라이빗 버전을 만들 수 있습니다.
  • 현재 범위에 상대적인 숫자입니다(범위 수까지 0, 여기서 0은 현재 범위, 1은 부모, 2는 부모 범위의 부모 등). 음수는 사용할 수 없습니다.

범위 매개 변수가 지정되지 않은 경우 로컬은 기본 범위입니다.

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

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

-Value

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

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

-Visibility

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

  • 공공의. 변수가 표시됩니다. (공용은 기본값입니다.)
  • 민간의. 변수가 표시되지 않습니다.

변수가 private인 경우 Get-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

값을 새 변수파이프할 수 있습니다.

출력

None or System.Management.Automation.PSVariable

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