使用高级生命周期编写函数
此示例显示函数如何接受流水线输入并有效迭代。
注意,当流水线操作时,函数的 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