PowerShell 在函数中判断管道的位置


假如你在函数中想知道函数被调用时,是位于管道的结尾呢,还是在管道的中间。下面的例子会演示如何判断一个函数所处的管道位置。

function test
{
    param( [Parameter(ValueFromPipeline=$true)]$data )
    process
    {
        if ($MyInvocation.PipelinePosition -ne $MyInvocation.PipelineLength)
        {
            $data
        } 
        else
        {
            Write-Host $data -foreground Red -background White
        }
      }
}
2..4 | test
1..3 | test | Get-Random -count 2

在上面的例子中,如果Test函数被在管道的末尾调用,会将内容以红色背景,白色前景输出到控制台。

原文链接:http://powershell.com/cs/blogs/tips/archive/2012/09/26/determine-functions-pipeline-position-with-powershell.aspx

本文链接: https://www.pstips.net/powershell-determine-functions-pipeline-position.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注