2012-05-16 5 views

답변

1

도움말에 기본적으로 리디렉션하는 기능입니다. 이 Name라는 속성 인수 본다면

PS ~\> Get-Content function:help 

<# 
.FORWARDHELPTARGETNAME Get-Help 
.FORWARDHELPCATEGORY Cmdlet 
#> 
[CmdletBinding(DefaultParameterSetName='AllUsersView')] 
param(
    [Parameter(Position=0, ValueFromPipelineByPropertyName=$true)] 
    [System.String] 
    ${Name}, 

    # Other arguments deleted for brevity 

    [Switch] 
    ${Online}) 
$outputEncoding=[System.Console]::OutputEncoding 

     Get-Help @PSBoundParameters | more 

이것은 기본적 의미는 바인드 입력 매개 변수로. 그래서, 당신이 할 때 도움말 함수가 인수를받지 생각 때문에,

format-list | help 

형식 목록 명령이 실행 (아무것도 반환되지 않습니다).

당신이 할 때 : 당신은 문자열 인수를 전달하는

"format-list" | help 

. 문자열 유형에는 Name 프로퍼티가 없으므로 인수를 바인드 할 수 없다는 오류 메시지가 표시됩니다. 그러나, 당신이 시도하는 경우 :

PS ~\> get-command format-list 

CommandType  Name    Definition 
-----------  ----    ---------- 
Cmdlet   Format-List   Format-List [[-Property] <Object[]>] [-GroupBy <... 

당신은 명령 형식 목록에 이름 속성을 가지고 볼 수 있습니다, 그래서 당신은

get-command format-list | help 

을 시도하는 경우는 format-list에 대한 도움을받을.

2

| 또는 "pipe"연산자는 한 연산의 결과를 다른 연산으로 리디렉션합니다. 따라서이 경우 format-list를 호출하고 그 출력을 매개 변수로 재지 정하여 도움을줍니다. 도움은 그 매개 변수로 무엇을해야할지 모르기 때문에 기본 행동 (도움을위한 도움)으로 들어갑니다. 이 기능의 정의를 보면

Get-Help command | more 

, 당신이 Name의 인수 ValueFromPipelineByPropertyName 태그의 위치 인수를 받아들이는 것을 볼 수 있습니다 :

+0

왜 ""format-list "| 도움? –