首页 > 解决方案 > 我们可以在并行容器中运行两个进程任务吗,比如第一个线程中的 350 个文件并在第二个线程中休息

问题描述

我正在使用powershell脚本来压缩文件。在这里我需要将文件并行压缩到容器中。350个文件在一个容器中并保留在另一个容器中。我该如何拆分。

在执行过程任务中,我只是执行 ps 脚本。在这里,我只是过滤了 .txt 文件,并在 foreach 循环中完成了压缩过程。

在这里,我如何将 350 个文件压缩到一个容器中并保留在另一个容器中?

$files = Get-ChildItem $srcdir -Filter *.txt | ? {$_.LastWriteTime -ge (Get-Date).Date}
foreach($file in $files) {
}

标签: powershellssis

解决方案


@Sid 提到的运行空间将提供最佳性能选项。

Powershell 作业可能也足以满足您希望完成的任务:

$files = Get-ChildItem $srcdir -Filter *.txt | ? {$_.LastWriteTime -ge (Get-Date).Date}
$Job1 = Start-Job -ScriptBlock {
    foreach($file in $files[0..349]) {
    }
}

$Job2 = Start-Job -ScriptBlock {
    foreach($file in $files[350..$files.length]) {
    }
}

Wait-Job $Job1, $Job2
Receive-Job $Job1, $Job2
  • Wait-Job = 等待两个作业完成。
  • Receive-Job = 收集来自 Jobs 的任何输出。

推荐阅读