about_Sequence

简短说明

介绍了按顺序运行所选活动的 Sequence 关键字。

长说明

Sequence 关键字按顺序运行所选的工作流活动。 工作流活动按它们的出现顺序运行,并且不会并发运行。 Sequence 关键字仅在 PowerShell 工作流中有效。

Sequence 关键字用于 Parallel 脚本块中,用来按顺序运行所选的命令。

由于工作流活动默认情况下按顺序运行,因此 Sequence 关键字仅在 Parallel 脚本块中生效。 如果 Sequence 关键字未包含在 Parallel 脚本块中,则它有效但不生效。

通过 Sequence 脚本块,可以通过允许按顺序运行相互依赖的命令来并行运行更多命令。

语法

使用 Sequence 的工作流

workflow <Verb-Noun>
{
    Sequence
    {
        [<Activity>]
        [<Activity>]
        # ...
    }
}

使用 Parallel 和 Sequence 的工作流

workflow <Verb-Noun>
{
    Parallel
    {
        [<Activity>]
        Sequence
        {
            [<Activity>]
            [<Activity>]
            # ...
        }
    }
}

详细说明

Parallel 脚本块中的命令可以并发运行。 它们运行的顺序不确定。 此功能可提高脚本工作流的性能。

可以使用 Sequence 脚本块按顺序运行所选活动,即使活动出现在 Parallel 脚本块中。

Sequence 脚本块中的活动按它们的列出顺序连续运行。 Sequence 脚本块中的活动在上一个活动完成之后才会启动。

但是,当 Sequence 脚本块出现在 Parallel 脚本块中时,不能确定 Sequence 脚本块的运行顺序。 它可能会在 Parallel 脚本块中的其他活动之前、之后运行,或与其他活动并发运行。

例如,以下工作流包括一个 Parallel 脚本块,该脚本块运行获取计算机上的进程和服务的活动。 Parallel 脚本块包含一个 Sequence 脚本块,该脚本块从文件中获取信息,并使用该信息作为脚本的输入。

Get-ProcessGet-Service 和修补程序相关的命令彼此独立。 这些命令可以并发或按任意顺序运行。 但是,获取修补程序信息的命令必须在使用该修补程序信息的命令之前运行。

workflow Test-Workflow
{
    Parallel
    {
    Get-Process
    Get-Service

    Sequence
    {
        $Hotfix = Get-Content 'D:\HotFixes\Required.txt'
        Foreach ($h in $Hotfix) {'D:\Scripts\Verify-Hotfix' -Hotfix $h}
        }
    }
}

另请参阅