about_Parameter_Binding
간단한 설명
매개 변수 바인딩은 PowerShell에서 사용 중인 매개 변수 집합을 확인하고 명령의 매개 변수에 값을 연결(바인딩)하는 데 사용하는 프로세스입니다. 이러한 값은 명령줄 및 파이프라인에서 가져올 수 있습니다.
자세한 설명
매개 변수 바인딩 프로세스는 명령줄 인수를 바인딩하여 시작합니다.
명명된 매개 변수 바인딩
명령줄에서 대시로 시작하는 따옴표 없는 토큰을 찾습니다. 토큰이 콜론으로 끝나는 경우 인수가 필요합니다. 콜론이 없는 경우 매개 변수의 형식을 확인하고 인수가 필요한지 확인합니다. 값이 필요한 경우 인수 형식을 매개 변수에 필요한 형식으로 변환하려고 시도하고 변환에 성공하면 매개 변수를 바인딩합니다.
위치 매개 변수 바인딩
사용되지 않는 명령줄 인수가 있는 경우 위치 매개 변수를 사용하는 언바운드 매개 변수를 찾아 바인딩합니다.
명령줄 인수를 바인딩한 후 PowerShell은 파이프라인 입력을 바인딩하려고 시도합니다. 파이프라인에서 값을 바인딩하는 방법에는 두 가지가 있습니다. 파이프라인 입력을 허용하는 매개 변수에는 다음 특성 중 하나 또는 둘 다 있습니다.
- ValueFromPipeline - 파이프라인의 값은 해당 형식에 따라 매개 변수에 바인딩됩니다. 인수의 형식은 매개 변수의 형식과 일치해야 합니다.
- ValueFromPipelineByPropertyName - 파이프라인의 값은 이름에 따라 매개 변수에 바인딩됩니다. 파이프라인의 개체에는 매개 변수 이름 또는 해당 별칭 중 하나와 일치하는 속성이 있어야 합니다. 속성 형식이 매개 변수 형식과 일치하거나 변환할 수 있어야 합니다.
PowerShell은 파이프라인 입력을 다음 순서로 바인딩하려고 시도합니다.
형식 변환 없이 매개 변수를 바인딩
ValueFromPipeline
해 봅니다.정확한 형식 일치를 사용하여 파이프라인에서 값으로 바인딩합니다. 명령에 파이프라인 입력이 있고 아직 바인딩되지 않은 매개 변수가 있는 경우 형식과 정확히 일치하는 매개 변수에 바인딩해 봅니다.
형식 변환 없이 매개 변수를 바인딩
ValueFromPipelineByPropertyName
해 봅니다.일치하는 값이 없으면 정확히 일치하는 이름으로 파이프라인에서 바인딩합니다. 매개 변수의 이름 또는 해당 별칭 중 하나와 일치하는 입력 개체의 속성을 찾습니다. 형식이 정확히 일치하는 경우 매개 변수를 바인딩합니다.
파이프라인 입력이 바인딩되지 않은 경우 형식 변환을 사용하여 매개 변수를 바인딩
ValueFromPipeline
해 봅니다.파이프라인 입력을 필수 형식으로 변환하려고 시도합니다. 변환에 실패하면 매개 변수가 바인딩되지 않습니다.
파이프라인 입력이 바인딩되지 않은 경우 형식 변환을 사용하여 매개 변수를 바인딩
ValueFromPipelineByPropertyName
해 봅니다.속성 이름은 매개 변수의 이름 또는 해당 별칭 중 하나와 일치해야 합니다. 입력 형식이 일치하지 않는 경우 입력을 일치하는 형식으로 변환합니다. 변환에 실패하면 매개 변수가 바인딩되지 않습니다.
매개 변수 바인딩 시각화
매개 변수 바인딩 문제 해결은 어려울 수 있습니다. Trace-Command cmdlet을 사용하여 매개 변수 바인딩 프로세스를 시각화할 수 있습니다. 다음 예제에서는 간단한 파이프라인에 대한 매개 변수 바인딩을 추적하는 방법을 보여줍니다.
Trace-Command -PSHost -Name ParameterBinding -Expression {
Get-Item *.txt | Remove-Item
}
출력은 식의 명령에 대한 매개 변수 바인딩 프로세스의 모든 단계를 보여 줍니다. 출력은 자세한 정보 표시일 수 있지만 매개 변수가 예상대로 바인딩되지 않는 이유를 이해하는 데 도움이 될 수 있습니다. 전체 예제는 매개 변수 바인딩 시각화 문서를 참조하세요.
PowerShell