about_Parameters

업데이트 날짜: 2011년 10월

적용 대상: Windows PowerShell 2.0, Windows PowerShell 3.0

항목

about_Parameters

간단한 설명

Windows PowerShell에서 명령 매개 변수로 작업하는 방법에 대해 설명합니다.

자세한 설명

대부분의 Windows PowerShell 명령(cmdlet, 함수 및 스크립트 등)은 사용자가 옵션을 선택하거나 입력을 제공할 수 있도록 하기 위해 매개 변수에 의존합니다. 매개 변수는 명령 이름을 따르며 다음과 같은 형식을 가지고 있습니다.

        -<parameter_name> <parameter_value>

매개 변수의 이름 앞에는 하이픈(-)이 오며, 이는 하이픈 뒤의 단어가 매개 변수 이름임을 Windows PowerShell에 알려 줍니다. 일부 매개 변수는 매개 변수 값을 요구하지 않거나 허용하지 않습니다. 다른 매개 변수는 값을 요구하지만 명령에 매개 변수 이름을 요구하지 않습니다.

매개 변수 형식과 해당 매개 변수에 대한 요구 사항은 다양합니다. 명령의 매개 변수에 관한 정보를 찾으려면 Get-Help cmdlet을 사용합니다. 예를 들어 Get-ChildItem cmdlet의 매개 변수에 관한 정보를 찾으려면 다음과 같이 입력합니다.

        Get-Help Get-ChildItem

스크립트의 매개 변수에 대한 정보를 찾으려면 스크립트 파일의 전체 경로를 사용합니다. 예를 들면 다음과 같습니다.

        Get-Help $home\Documents\Scripts\Get-Function.ps1

Get-Help cmdlet은 설명, 명령 구문, 매개 변수에 관한 정보 및 명령에 매개 변수를 사용하는 방법을 보여 주는 예제를 포함하여 명령에 관한 여러 자세한 정보를 반환합니다.

또한 Get-Help cmdlet의 Parameter 매개 변수를 사용하여 특정 매개 변수에 관한 정보를 찾을 수도 있습니다. 또는 Parameter 매개 변수를 와일드 카드 문자(*) 값과 함께 사용하여 명령의 모든 매개 변수에 관한 정보를 찾을 수 있습니다. 예를 들어 다음 명령은 Get-Member cmdlet의 모든 매개 변수에 관한 정보를 가져옵니다.

        Get-Help Get-Member -Parameter *

기본 매개 변수 값

선택적 매개 변수는 기본값, 즉 명령에 매개 변수를 지정할 때 사용하거나 가정하는 값을 가지고 있습니다.

예를 들어 많은 cmdlet의 ComputerName 매개 변수의 기본값은 로컬 컴퓨터의 이름입니다. 따라서 로컬 컴퓨터 이름은 ComputerName 매개 변수를 지정하지 않은 한 명령에 사용됩니다.

기본 매개 변수 값을 찾으려면 cmdlet에 대한 도움말 항목을 참조하세요. 매개 변수 설명은 기본값을 포함하고 있어야 합니다.

또한 cmdlet 또는 고급 함수의 매개 변수에 대한 사용자 지정 기본값을 설정할 수 있습니다. 사용자 지정 기본값 설정에 관한 자세한 내용은 about_Parameters_Default_Values를 참조하세요.

매개 변수 특성 테이블

Get-Help cmdlet의 Full, Parameter 또는 Online 매개 변수를 사용하면 Get-Help는 매개 변수에 관한 자세한 정보를 포함하고 있는 매개 변수 특성 테이블을 표시합니다.

이 정보는 매개 변수를 사용하기 위해 알아야 하는 자세한 정보를 포함하고 있습니다. 예를 들어 Get-ChildItem cmdlet에 대한 도움말 항목은 해당 Path 매개 변수에 관한 다음과 같은 자세한 정보를 포함하고 있습니다.

        -path <string[]>
            Specifies a path of one or more locations. Wildcard characters are
            permitted. The default location is the current directory (.).

        Required?                    false
        Position?                    1
        Default value                Current directory
        Accept pipeline input?       true (ByValue, ByPropertyName)
        Accept wildcard characters?  true

매개 변수 정보는 매개 변수 구문, 매개 변수 설명 및 매개 변수 특성을 포함하고 있습니다. 다음 섹션에서는 매개 변수 특성에 대해 설명합니다.

매개 변수 필수?

이 설정은 매개 변수가 의무인지 여부, 즉 이 cmdlet을 사용하는 모든 명령이 이 매개 변수를 포함해야 하는지 여부를 나타냅니다. 값이 "True"인데 명령에 매개 변수가 없으면 Windows PowerShell는 매개 변수의 값에 대한 프롬프트를 표시합니다.

매개 변수 위치?

이 설정은 매개 변수 이름을 앞에 포함하지 않고 매개 변수의 값을 제공할 수 있는지 여부를 나타냅니다. "0" 또는 "named"로 설정하면 매개 변수 이름이 필수입니다. 이 유형의 매개 변수를 명명된 매개 변수라고 합니다. 명명된 매개 변수는 cmdlet 이름 뒤의 임의 위치에 나열할 수 있습니다.

"매개 변수 위치?" 설정이 0 이외의 정수로 설정된 경우 매개 변수 이름은 필수가 아닙니다. 이 유형의 매개 변수를 위치 매개 변수라고 하며 숫자는 다른 위치 매개 변수를 기준으로 매개 변수가 나타나야 하는 위치를 나타냅니다. 위치 매개 변수에 대해 매개 변수 이름을 포함시키면 매개 변수는 cmdlet 이름 뒤의 임의 위치에 나열할 수 있습니다.

예를 들어 Get-ChildItem cmdlet은 Path 및 Exclude 매개 변수를 가지고 있습니다. Path에 대한 "매개 변수 위치?" 설정은 1이며, 이는 위치 매개 변수임을 의미합니다. Exclude에 대한 "매개 변수 위치?" 설정은 0이며, 이는 명명된 매개 변수임을 의미합니다.

즉, Path는 매개 변수 이름을 요구하지 않지만 해당 매개 변수 값은 명령에서 첫 번째 또는 유일한 명명되지 않은 매개 변수 값이어야 합니다. 그러나 Exclude 매개 변수는 명명된 매개 변수이므로 명령의 어느 위치에나 배치할 수 있습니다.

이 두 매개 변수에 대한 "매개 변수 위치?" 설정의 결과로 다음과 같은 명령을 사용할 수 있습니다.

        Get-ChildItem -path c:\techdocs -exclude *.ppt
        Get-ChildItem c:\techdocs -exclude *.ppt
        Get-ChildItem -exclude *.ppt -path c:\techdocs
        Get-ChildItem -exclude *.ppt c:\techdocs

매개 변수 이름을 포함하지 않고 다른 위치 매개 변수를 포함시키려면 해당 매개 변수를 "매개 변수 위치?" 설정에서 지정한 순서대로 배치해야 합니다.

PARAMETER TYPE

이 설정은 매개 변수 값의 Microsoft .NET Framework 형식을 지정합니다. 예를 들어 형식이 Int32이면 매개 변수 값은 정수여야 합니다. 형식이 문자열이면 매개 변수 값은 문자 문자열이어야 합니다. 문자열이 공백을 포함하고 있는 경우 값을 따옴표로 묶거나 공백 앞에 이스케이프 문자(`)를 넣어야 합니다.

DEFAULT VALUE

이 설정은 다른 값을 제공하지 않은 경우 매개 변수가 가정하는 값을 지정합니다. 예를 들어 Path 매개 변수의 기본값은 흔히 현재 디렉터리입니다. 필수 매개 변수는 기본값을 갖지 않습니다. 많은 선택적 매개 변수의 경우 매개 변수가 사용되지 않으면 아무 영향도 없으므로 기본값이 없습니다.

여러 값 허용?

이 설정은 매개 변수가 여러 매개 변수 값을 허용하는지 여부를 나타냅니다. 매개 변수가 여러 값을 허용하는 경우, 쉼표로 구분된 목록을 명령의 매개 변수 값으로 입력하거나 쉼표로 구분된 목록(배열)을 변수에 저장한 다음 해당 변수를 매개 변수 값으로 지정할 수 있습니다.

예를 들어 Get-Service cmdlet의 ServiceName 매개 변수는 여러 값을 허용합니다. 다음 명령은 둘 다 유효합니다.

        get-service -servicename winrm, netlogon


        $s = "winrm", "netlogon"
        get-service -servicename $s

파이프라인 입력 허용?

이 설정은 파이프라인 연산자(|)를 사용하여 값을 매개 변수에 보낼 수 있는지 여부를 나타냅니다.

    
    Value                    Description
    -----                    -----------
    False                    Indicates that you cannot pipe a value to the 
                             parameter.


    True (by Value)          Indicates that you can pipe any value to the 
                             parameter, just so the value has the .NET 
                             Framework type specified for the parameter or the
                             value can be converted to the specified .NET 
                             Framework type.


                             When a parameter is "True (by Value)", Windows 
                             PowerShell tries to associate any piped values 
                             with that parameter before it tries other methods
                             to interpret the command.


    True (by Property Name)  Indicates that you can pipe a value to the 
                             parameter, but the .NET Framework type of the 
                             parameter must include a property with the same
                             name as the parameter.
 
                             For example, you can pipe a value to a Name 
                             parameter only when the value has a property 
                             called "Name".

와일드 카드 문자 허용?

이 설정은 매개 변수의 값이 매개 변수 값을 대상 컨테이너에 있는 둘 이상의 기존 항목에 일치시킬 수 있도록 와일드카드 문자를 포함할 수 있는지 여부를 나타냅니다.

COMMON PARAMETERS

일반 매개 변수는 cmdlet과 함께 사용할 수 있는 매개 변수입니다. 일반 매개 변수에 대한 자세한 내용은 about_CommonParameters를 참조하세요.

참고 항목

about_Command_syntax

about_Comment_Based_Help

about_Functions_Advanced

about_Parameters_Default_Values

about_Pipelines

about_Wildcards