使用高階生命週期編寫函式

此示例顯示函式如何接受流水線輸入並有效迭代。

注意,當流水線操作時,函式的 beginend 結構是可選的,但是當使用 ValueFromPipelineValueFromPipelineByPropertyName 時需要 process

function Write-FromPipeline{
    [CmdletBinding()]
    param(
        [Parameter(ValueFromPipeline)]
        $myInput
    )
    begin {
        Write-Verbose -Message "Beginning Write-FromPipeline" 
    }
    process {
        Write-Output -InputObject $myInput
    }
    end {
        Write-Verbose -Message "Ending Write-FromPipeline"
    }
}

$foo = 'hello','world',1,2,3

$foo | Write-FromPipeline -Verbose

輸出:

VERBOSE: Beginning Write-FromPipeline
hello
world
1
2
3
VERBOSE: Ending Write-FromPipeline