답변

14

Write-DebugWrite-Verbose-Debug-Verbose 매개 변수를 자동으로 처리합니다.

-PassThru 기술적 공통 매개 변수 아니지만, 당신은 그것을 좋아 구현할 수 있습니다

function PassTest { 
    param(
     [switch] $PassThru 
    ) 
    process { 
     if($PassThru) {$_} 
    } 
} 

1..10|PassTest -PassThru 

을 그리고 이것은 cmdlet에서 함수의 경유 값을 사용하는 예제입니다

function Add-ScriptProperty { 
    param(
     [string] $Name, 
     [ScriptBlock] $Value, 
     [switch] $PassThru 
    ) 
    process{ 
     # Use ":" to explicitly set the value on a switch parameter 
     $_| Add-Member -MemberType ScriptProperty -Name $Name -Value $Value ` 
      -PassThru:$PassThru 
    } 
} 

$calc = Start-Process calc -PassThru| 
     Add-ScriptProperty -Name SecondsOld ` 
      -Value {((Get-Date)-$this.StartTime).TotalSeconds} -PassThru 
sleep 5 
$calc.SecondsOld 

되세요 자세한 내용은 Get-Help about_CommonParameters을보십시오.

+0

입력 변수를 저장하고 끝에 저장된 변수를 passthru ($ passthru 인 경우)하는 것이 좋습니다. – Matt

+2

예, 'PassTest'는 유용한 기능이 아닙니다. '-PassThru'가 구현 될 수있는 방법을 보여주는 간단한 예입니다. 또한 입력 변수를 사용하여 무언가를 할 수도 있지만 원본 값을 변경하지 않아도됩니다 (예 :'$ _. Kill(); if ($ PassThru) {$ _}'). 다른 명령의 PassThru를 설정하기 위해 PassThru 매개 변수를 사용하는 trival이 아닌 예를 추가했습니다. – Rynant