새 변수를 만듭니다.

구문

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

설명

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

매개 변수인 New-Variable을 사용하여 읽기 전용 또는 상수 변수를 만드는 속성과 같은 변수 속성을 설정하고, 변수 범위를 설정하고, 변수가 공용 변수인지 개인 변수인지를 결정할 수 있습니다.

일반적으로는 "$var = 3"과 같이 변수 이름과 해당 값을 입력하여 새 변수를 만들지만 New-Variable cmdlet을 통해 해당 매개 변수를 사용할 수도 있습니다.

매개 변수

-Description <string>

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

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Force

기존 읽기 전용 변수와 이름이 같은 새 변수를 만들 수 있습니다.

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

필수 여부

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 매개 변수에서 지정한 범위 내에서만 변수를 사용할 수 있습니다. 하위 범위에서도 이 값을 상속합니다. 이 값은 Visibility 매개 변수의 "Private" 값과는 관계가 없습니다.

-- 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

값을 New-Variable로 파이프할 수 있습니다.

출력

없음 또는 System.Management.Automation.PSVariable

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

예 1

C:\PS>new-variable days

설명
-----------
이 명령은 "days"라는 새 변수를 만듭니다. 이 변수는 명령 바로 뒤에 값을 포함하지 않습니다.






예 2

C:\PS>new-variable zipcode -value 98033

설명
-----------
이 명령은 "zipcode"라는 새 변수를 만들고 여기에 "98033"이라는 값을 할당합니다.






예 3

C:\PS>new-variable -name max -value 256 -option readonly

new-variable -name max -value 1024

new-variable -name max -value 1024 -force

C:\PS> new-variable -name max -value 256 -option readonly

C:\PS> new-variable -name max -value 1024
New-Variable : A variable with name 'max' already exists.
At line:1 char:13
+ new-variable <<<<  -name max -value 1024

C:\PS> new-variable -name max -value 1024 -force

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

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

두 번째 명령은 이름이 같은 두 번째 변수를 만들려고 시도합니다. 그러나 변수에 대해 읽기 전용 옵션이 설정되어 있으므로 이 명령을 실행하면 오류가 반환됩니다.

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






예 4

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

#Effect of private variable in a module.

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> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

설명
-----------
이 명령은 모듈의 개인 변수 동작을 보여 줍니다. 모듈에는 이름이 "Counter"인 개인 변수가 포함된 Get-Counter cmdlet이 들어 있습니다. 명령은 값이 "Private"인 Visibility 매개 변수를 사용하여 변수를 만듭니다.

샘플 출력은 개인 변수의 동작을 보여 줍니다. 모듈을 로드한 사용자는 Counter 변수 값을 보거나 변경할 수 없지만, 모듈의 명령을 통해 Counter 변수를 읽고 변경할 수 있습니다.






참고 항목




목차