PowerShell中Job相关命令及并行执行任务详解

2019-09-30 09:26:52刘景俊

上面的函数会在后台执行用户的任务,然后等待所有的任务执行结束。并且用户可以指定同时执行的任务的个数,在任务执行完成后,输出任务的 output。接下来让我们尝试使用这个函数执行一些任务:

#定义 6 个任务
$task1 = {sleep 12; Write-Host "Hello myJob1."; }
$task2 = {sleep 5; Write-Host "Hello myJob2."; }
$task3 = {sleep 8; Write-Host "Hello myJob3."; }
$task4 = {sleep 3; Write-Host "Hello myJob4."; }
$task5 = {sleep 20; Write-Host "Hello myJob5."; }
$task6 = {sleep 15; Write-Host "Hello myJob6."; } 
#将 6 个任务写入到一个数组中作为任务队列
$taskArr = $task1, $task2, $task3, $task4, $task5, $task6
#运行数组中的任务,允许同时运行 4 个任务
Run-Tasks -taskArr $taskArr -parallelcount 4

下面是运行的结果:

总结

能够随心所欲的在后台执行任务是一件感觉非常棒的事情!当然,对于工作来说你能够把事情做得又快又好(又好可不敢说)。本文只是提供了一个简单的运行并行任务的 demo,省略了异常处理等重要内容,但这已经足够您开始 PowerShell 并行任务之旅了。

参考:

《Windows PowerShell 实战第二版》
Powershell:简单实现并行任务的脚本