如何从工作流中的函数调用函数

时间:2016-03-27 19:59:44

标签: powershell

我正在尝试创建一个Powershell工作流程,其中包含许多功能。

我的代码和错误......

workflow New-AutomationVM
{
    function Pre-DeploymentChecks
    { Write-Output $true }

    function Deploy 
    { $checkResult = Pre-DeploymentChecks }

    Deploy
}
New-AutomationVM 
  

术语“预部署检查”不会被识别为cmdlet,函数,脚本文件或可操作程序的名称。

我的目的是创建一个封装所有其他功能的部署功能。但似乎无法从工作流内的函数内调用函数。即我可以从工作流程调用Pre-DeploymentChecks,但不能调用函数。

显然我可以把这个逻辑放在函数之外,但这种方法看起来有点整洁。

我做了些蠢事!或者这在Powershell工作流程中是不可能的?

1 个答案:

答案 0 :(得分:1)

改为使用嵌套工作流程:

<Grid>
        <Rectangle x:Name="rect" Fill="{Binding ElementName=label, Path=Background}" />
        <TextBlock x:Name="label" Text="Hover over me" >
            <TextBlock.Style>
                <Style TargetType="TextBlock">
                    <Setter Property="Height" Value="20" />
                    <Setter Property="Width" Value="100" />
                    <Setter Property="HorizontalAlignment" Value="Center" />
                    <Setter Property="VerticalAlignment" Value="Center" />
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" Value="LightBlue" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
        </TextBlock>
    </Grid>

这也允许您在每个嵌套工作流程中使用工作流构造,例如workflow New-AutomationVM { workflow Pre-DeploymentChecks { Write-Output $true } workflow Deploy { $checkResult = Pre-DeploymentChecks } Deploy } New-AutomationVM sequence

parallel