管道工作流程

时间:2014-04-28 23:38:48

标签: powershell powershell-v3.0 pipeline

我有以下powershell脚本:

function Testing
{
    [CmdLetBinding()]
    Param (                
        [int]$MaxRetrycount = 3,
        [Parameter(ValueFromPipeline=$True)] [String]$Definition
    )   
    return $MaxRetrycount
}

workflow Test-Workflow
{
    $PSComputerName

    $data = 'abc','xyz'
    $data | Testing -MaxRetrycount 2 -Definition
    $JobName
}

Test-Workflow

但执行此脚本会给我一些错误,如

  

工作流管道中不支持“测试”活动。

在使用工作流程命令管道调用函数时,我是否犯了错误?

提前致谢。

1 个答案:

答案 0 :(得分:0)

嗯,使用管道输入不起作用但是如果你调用不使用管道输入的函数它会工作:

function Test-Function
{
    [CmdLetBinding()]
    Param (                
        [int]$MaxRetrycount = 3,
        [Parameter(ValueFromPipeline=$True)] [String]$Definition
    )   
    return $MaxRetrycount
}

workflow Test-Workflow
{
        $PSComputerName

        $data = 'abc','xyz'
        foreach ($d in $data) {
            Test-Function -MaxRetrycount 2 -Definition $d
        }
        $JobName
}

Test-Workflow

输出:

Test-Workflow
2
Job37