변수 공급자

업데이트 날짜: 2014년 10월

적용 대상: Windows PowerShell 4.0, Windows PowerShell 5.0

공급자 이름

변수

드라이브

변수:

간단한 설명

Windows PowerShell 변수 및 해당 값에 대한 액세스를 제공합니다.

자세한 설명

Windows PowerShell 변수 공급자를 통해 현재 콘솔에서 Windows PowerShell 변수를 가져오고 추가, 변경 및 삭제할 수 있습니다.

Windows PowerShell 변수 공급자는 자동 변수, 기본 설정 변수 및 사용자가 만드는 변수를 포함하여 Windows PowerShell이 만드는 변수를 지원합니다.

변수 공급자는 변수 개체만 포함된 단일 구조 네임스페이스입니다. 변수에는 하위 항목이 없습니다.

대부분의 변수는 System.Management.Automation.PSVariable 클래스의 인스턴스입니다. 그러나 몇 가지 변형이 있습니다. 예를 들어 "?" 변수는 QuestionMarkVariable 클래스의 멤버이고 "MaximumVariableCount" 변수는 SessionStateCapacityVariable 클래스의 멤버입니다.

변수 공급자는 Variable: 드라이브에 해당 데이터 저장소를 표시합니다. 변수를 사용하려면 위치를 Variable: 드라이브로 변경("set-location variable:")하거나 다른 Windows PowerShell 드라이브에서 작업할 수 있습니다. 다른 위치에서 변수를 참조하려면 경로에 드라이브 이름(Variable:)을 사용합니다.

Windows PowerShell에는 변수를 보거나 변경할 수 있도록 특별히 디자인된 다음과 같은 cmdlet 집합이 포함되어 있습니다.

-- Get-Variable

-- New-Variable

-- Set-Variable

-- Remove-Variable

-- Clear-Variable

이러한 cmdlet을 사용하면 이름에 Variable: 드라이브를 지정할 필요가 없습니다.

변수 공급자는 Invoke-Item을 제외하고 이름에 Item 명사가 포함된 모든 cmdlet(Item cmdlet)을 지원합니다. 변수 공급자는 Get-ContentSet-Content cmdlet을 지원합니다. 그러나 이름에 ItemProperty 명사가 포함된 cmdlet(ItemProperty cmdlet)은 지원하지 않으며 모든 cmdlet에서 Filter 매개 변수를 지원하지 않습니다.

또한 cmdlet을 사용하는 대신 Windows PowerShell 식 파서를 사용하여 변수 값을 만들거나 보고 변경할 수 있습니다. 변수에서 직접 작업하는 경우 달러 기호($)를 사용하여 이름을 변수로 식별하고 대입 연산자(=)를 사용하여 해당 값을 설정 및 변경할 수 있습니다. 예를 들어 "$p = get-process"는 "p" 변수를 만들고 "get-process" 명령의 결과를 이 변수에 저장합니다.

변수에 대한 모든 변경 내용은 현재 세션에만 영향을 줍니다. 변경 내용을 저장하려면 Windows PowerShell 프로필에 변경 내용을 추가하거나 Export-Console을 사용하여 현재 콘솔을 저장합니다.

기능

ShouldProcess

예제

Variable: 드라이브로 이동

-------------------------- 예제 1 --------------------------

이 명령은 현재 위치를 Variable: 드라이브로 변경합니다. Windows PowerShell의 모든 드라이브에서 이 명령을 사용할 수 있습니다. 파일 시스템 드라이브로 돌아가려면 드라이브 이름을 입력합니다. 예를 들어 "set-location c:"와 같이 입력하세요.

set-location variable:

변수의 값 표시

-------------------------- 예제 1 --------------------------

이 명령은 현재 세션의 모든 변수 및 변수 값 목록을 가져옵니다. 모든 Windows PowerShell 드라이브에서 이 명령을 사용할 수 있습니다.

get-childitem -path variable:

-------------------------- 예제 2 --------------------------

이 명령은 이름이 "max"로 시작하는 변수를 가져옵니다. 모든 Windows PowerShell 드라이브에서 이 명령을 사용할 수 있습니다.

get-childitem -path variable:max*

현재 위치가 Variable: 드라이브인 경우 경로에서 드라이브 이름을 생략할 수 있습니다.

-------------------------- 예제 3 --------------------------

이 명령은 명령줄에 직접 입력하는 방식으로 WhatIfPreference 변수 값을 가져옵니다.

변수 이름 앞에는 변수임을 나타내는 달러 기호($)가 있습니다. Variable: 드라이브 이름은 지정되지 않았습니다.

$WhatIfPreference

-------------------------- 예제 4 --------------------------

이 명령은 Get-ChildItem의 LiteralPath 매개 변수를 사용하여 Variable: 드라이브에서 "?" 변수 값을 가져옵니다. Get-ChildItem은 LiteralPath 매개 변수 값에서 와일드카드를 확인하지 않습니다.

get-childitem -literalpath ?

cmdlet을 사용하지 않고 특수 문자 이름을 가진 변수 값을 표시하려면 달러 기호($)와 변수 이름을 입력합니다. 예를 들어 "?" 변수의 값을 표시하려면 "$?"를 입력합니다.

-------------------------- 예제 5 --------------------------

이 명령은 Options 속성 값이 "ReadOnly" 또는 "Constant"인 변수를 가져옵니다.

get-childitem -path variable: | where-object {$_.options -match "Constant" -or $_.options -match "ReadOnly"} | format-list -property name, value, options

새 변수 만들기

-------------------------- 예제 1 --------------------------

이 명령은 "services" 변수를 만들고 Get-Service 명령의 결과를 이 변수에 저장합니다. 현재 위치가 Variable: 드라이브이므로 Path 매개 변수의 값은 현재 위치를 나타내는 점(.)입니다.

Get-Service 명령은 괄호로 묶여 있으므로 변수가 생성되기 전에 실행됩니다. 괄호가 없으면 새 변수 값이 "Get-Service" 문자열이 됩니다.

new-item -path . -name services -value (Get-Service)

현재 위치가 variable: 드라이브가 아닌 경우에는 경로에 Variable: 드라이브 이름을 포함해야 합니다.

-------------------------- 예제 2 --------------------------

이 명령은 "services" 변수를 만들고 Get-Service 명령의 결과를 이 변수에 저장합니다.

이 명령은 달러 기호($)를 사용하여 변수를 나타내고 대입 연산자(=)를 사용하여 Get-Service 명령의 결과를 새로 만든 변수에 할당합니다.

$services = Get-Service

값 없는 변수를 만들려면 대입 연산자를 생략합니다.

변수의 속성 및 메서드 표시

-------------------------- 예제 1 --------------------------

이 명령은 Get-Item cmdlet을 사용하여 모든 변수를 가져옵니다. 파이프라인 연산자(|)는 결과를 Get-Member cmdlet으로 보냅니다. 이 cmdlet은 개체의 메서드 및 속성을 표시합니다.

get-item -path variable:* | get-member

Variable: 드라이브의 변수 컬렉션과 같은 개체 컬렉션을 Get-Member로 파이프하면 Get-Member는 컬렉션의 각 개체를 개별적으로 평가하고 찾은 각 개체 형식에 대한 정보를 반환합니다. Variable 드라이브의 개체 컬렉션에 대한 정보를 가져오려면 Get-Member의 InputObject 매개 변수를 사용합니다. 예를 들어 "get-member -inputobject (get-item variable:*)"과 같이 입력하세요. InputObject를 사용하는 경우 Get-Member는 컬렉션의 개체가 아니라 컬렉션 자체를 평가합니다.

-------------------------- 예제 2 --------------------------

이 명령은 "home" 변수의 속성 값을 나열합니다. 또한 Get-Item cmdlet을 사용하여 "home" 변수를 나타내는 개체를 가져옵니다. 파이프라인 연산자(|)는 결과를 Format-List 명령으로 보냅니다. Format-List 명령은 와일드카드 문자(*)와 함께 Property 매개 변수를 사용하여 "home" 변수의 모든 속성 값을 표시하고 형식을 지정합니다.

get-item variable:home | format-list -property *

변수의 속성 변경

-------------------------- 예제 1 --------------------------

이 명령은 Rename-Item cmdlet을 사용하여 "a" 변수의 이름을 "processes"로 변경합니다.

rename-item -path variable:a -newname processes

-------------------------- 예제 2 --------------------------

이 명령은 Set-Item cmdlet을 사용하여 ErrorActionPreference 변수의 값을 "Stop"으로 변경합니다.

set-item -path variable:ErrorActionPreference -value Stop

-------------------------- 예제 3 --------------------------

이 명령은 ErrorActionPreference 변수의 값을 "Stop"으로 변경합니다.

이 명령은 달러 기호($)를 사용하여 변수를 나타내고 대입 연산자(=)를 사용하여 값을 할당합니다.

$ErrorActionPreference = Stop

변수 복사

-------------------------- 예제 1 --------------------------

이 명령은 Copy-Item cmdlet을 사용하여 "processes" 변수를 "old_processes"로 복사합니다. 이를 통해 "processes" 변수와 값이 같은 "old_processes"라는 새 변수가 만들어집니다.

copy-item -path variable:processes -destination variable:old_processes

명령이 Variable: 드라이브에서 실행된 경우에는 Path 매개 변수 값에서 드라이브 이름을 생략할 수 있습니다.

-------------------------- 예제 2 --------------------------

이 명령은 cmdlet을 사용하지 않고 "processes" 변수를 "old_processes"로 복사합니다. 구체적으로 이 명령은 달러 기호($)를 사용하여 변수를 나타내고 대입 연산자(=)를 사용하여 $processes의 값을 old_processes에 할당합니다.

$old_processes = $processes

변수 삭제

-------------------------- 예제 1 --------------------------

이 명령은 현재 세션에서 "serv" 변수를 삭제합니다. 모든 Windows PowerShell 드라이브에서 이 명령을 사용할 수 있습니다.

remove-variable -path variable:serv

-------------------------- 예제 2 --------------------------

이 명령은 Options 속성 값이 Constant인 변수를 제외하고 현재 세션에서 모든 변수를 삭제합니다. Force 매개 변수가 없는 경우 Options 속성 값이 ReadOnly인 변수는 삭제되지 않습니다.

remove-item variable:* -force

변수 값을 NULL로 설정

-------------------------- 예제 1 --------------------------

이 명령은 Clear-Item cmdlet을 사용하여 "processes" 변수의 값을 NULL로 변경합니다.

clear-item -path variable:processes

-------------------------- 예제 2 --------------------------

이 명령은 "processes" 변수에 NULL 값을 할당하여 이 변수의 값을 지웁니다. 구체적으로 이 명령은 $null 자동 변수를 사용하여 NULL 값을 표시합니다.

$processes = $null

See Also

커뮤니티 추가 항목

추가
표시: