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 |
입력
모든 개체를 .에 파이프할 New-Variable
수 있습니다.
출력
None
기본적으로 이 cmdlet은 출력을 반환하지 않습니다.
PassThru 매개 변수를 사용하는 경우 이 cmdlet은 새 변수를 나타내는 PSVariable 개체를 반환합니다.
참고
Windows PowerShell에는 다음 별칭이 포함됩니다.New-Variable
nv
관련 링크
PowerShell