使用高階生命週期編寫函式
此示例顯示函式如何接受流水線輸入並有效迭代。
注意,當流水線操作時,函式的 begin
和 end
結構是可選的,但是當使用 ValueFromPipeline
或 ValueFromPipelineByPropertyName
時需要 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