about_Parameters

간단한 설명

PowerShell에서 명령 매개 변수를 사용하는 방법을 설명합니다.

자세한 설명

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

-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>

매개 변수의 이름 앞에는 하이픈(-)이 있으며, 하이픈을 따르는 단어가 매개 변수 이름임을 PowerShell에 알릴 수 있습니다. 매개 변수 이름과 값은 공백 또는 콜론 문자로 구분할 수 있습니다. 일부 매개 변수는 매개 변수 값을 요구하거나 허용하지 않습니다. 다른 매개 변수에는 값이 필요하지만 명령에 매개 변수 이름이 필요하지 않습니다.

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

Get-Help Get-ChildItem

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

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

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

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

Get-Help Get-Member -Parameter *

기본 매개 변수 값

선택적 매개 변수에는 매개 변수가 명령에 지정되지 않은 경우 사용되거나 가정되는 값인 기본값이 있습니다.

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

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

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

매개 변수 특성 테이블

cmdlet의 전체, 매개 변수 또는 온라인 매개 변수를 Get-Help 사용하는 경우 매개 변수에 대한 자세한 정보가 포함된 매개 Get-Help 변수 특성 테이블을 표시합니다.

이 정보에는 매개 변수를 사용하기 위해 알아야 할 세부 정보가 포함됩니다. 예를 들어 cmdlet에 Get-ChildItem 대한 도움말 항목에는 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?                    0
Default value                Current directory
Accept pipeline input?       true (ByValue, ByPropertyName)
Accept wildcard characters?  true

매개 변수 정보에는 매개 변수 구문, 매개 변수에 대한 설명 및 매개 변수 특성이 포함됩니다. 다음 섹션에서는 매개 변수 특성에 대해 설명합니다.

매개 변수 필요

이 설정은 매개 변수가 필수인지, 즉 이 cmdlet을 사용하는 모든 명령에 이 매개 변수를 포함해야 하는지 여부를 나타냅니다. 값이 True이고 매개 변수가 명령에서 누락된 경우 PowerShell은 매개 변수에 대한 값을 묻는 메시지를 표시합니다.

매개 변수 위치

설정이 음수가 Position 아닌 정수로 설정된 경우 매개 변수 이름은 필요하지 않습니다. 이 형식의 매개 변수를 위치 매개 변수라고 하며, 이 숫자는 매개 변수가 다른 위치 매개 변수와 관련하여 나타나야 하는 위치를 나타냅니다. 명명된 매개 변수는 cmdlet 이름 뒤의 모든 위치에 나열될 수 있습니다. 위치 매개 변수의 매개 변수 이름을 포함하는 경우 cmdlet 이름 뒤의 모든 위치에 매개 변수를 나열할 수 있습니다.

예를 들어 cmdlet에는 Get-ChildItem 경로 및 제외 매개 변수가 있습니다. Path에 대한 설정은 Position 0입니다. 즉, 위치 매개 변수입니다. Position Exclude에 대한 설정의 이름이 지정됩니다.

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

이러한 두 매개 변수에 Position 대한 설정의 결과로 다음 명령을 사용할 수 있습니다.

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

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

매개 변수 유형

이 설정은 매개 변수 값의 Microsoft .NET Framework 형식을 지정합니다. 예를 들어 형식이 Int32인 경우 매개 변수 값은 정수여야 합니다. 형식이 문자열인 경우 매개 변수 값은 문자열이어야 합니다. 문자열에 공백이 포함된 경우 값은 따옴표로 묶어야 합니다. 그렇지 않으면 공백 앞에 이스케이프 문자(`)가 와야 합니다.

기본값

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

여러 값을 허용합니다.

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

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

Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $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.

매개 변수가 "True(값 기준)"인 경우 PowerShell은 다른 메서드가 명령을 해석하려고 시도하기 전에 파이프된 값을 해당 매개 변수와 연결하려고 합니다.

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.

예를 들어 값에 Name이라는 속성이 있는 경우에만 Name 매개 변수로 값을 파이프할 수 있습니다.

참고 항목

파이프라인 입력() 또는 (by Valueby PropertyName)를 허용하는 형식화된 매개 변수를 사용하면 매개 변수에서 지연 바인딩 스크립트 블록을 사용할 수 있습니다.

지연 바인딩 스크립트 블록은 ParameterBinding 중에 자동으로 실행됩니다. 결과는 매개 변수에 바인딩됩니다. 지연 바인딩은 형식 System.ObjectScriptBlock 으로 정의된 매개 변수에 대해 작동하지 않거나 스크립트 블록이 호출되지 않고 전달됩니다.

about_Script_Blocks.md에서 지연 바인딩 스크립트 블록에 대해 읽을 수 있습니다.

Wild카드 문자를 허용합니다.

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

일반 매개 변수

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

참고 항목