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." }