Powershell - 工作流代码

使用 Workflow 关键字

将 PowerShell 脚本转换为 PowerShell 工作流的第一步,是使用 Workflow 关键字将其括起来。 工作流以 Workflow 关键字开头,后接括在大括号中的脚本正文。 工作流名称跟在 Workflow 关键字之后,如以下语法中所示:

Workflow Test-Workflow
{
    <Commands>
}

PowerShell 工作流代码与 PowerShell 脚本代码之间的差异

使用并行处理

Windows PowerShell 工作流的一个优点是能够与典型脚本一样并行而不是按顺序执行一组命令。

可以使用 Parallel 关键字创建包含将同时运行的多个命令的脚本块。 此脚本块使用如下所示的语法。 在此示例中,Activity1 和 Activity2 将同时启动。 只有在 Activity1 和 Activity2 完成后,Activity3 才会启动。

Parallel
{
    <Activity1>
    <Activity2>
}
<Activity3>

例如,请注意以下将多个文件复制到网络目标的 PowerShell 命令。 这些命令将依次进行,因此必须完成一个文件的复制,然后才能开始复制下一个文件。

Copy-Item -Path C:\LocalPath\File1.txt -Destination \\NetworkPath\File1.txt
Copy-Item -Path C:\LocalPath\File2.txt -Destination \\NetworkPath\File2.txt
Copy-Item -Path C:\LocalPath\File3.txt -Destination \\NetworkPath\File3.txt

下面的工作流并行运行这些命令,以便它们同时开始复制。 只有在所有复制均已完成之后,才会显示完成消息。

Workflow Copy-Files
{
    Parallel
    {
        Copy-Item -Path "C:\LocalPath\File1.txt" -Destination "\\NetworkPath"
        Copy-Item -Path "C:\LocalPath\File2.txt" -Destination "\\NetworkPath"
        Copy-Item -Path "C:\LocalPath\File3.txt" -Destination "\\NetworkPath"
    }

    Write-Output "Files copied."
}

 

posted @ 2022-03-16 11:22  罐头瓶  阅读(103)  评论(0编辑  收藏  举报