Powershell - 工作流程中的动态变量名称

时间:2017-04-29 17:41:29

标签: powershell variables dynamic parallel-processing workflow

是否可以在PowerShell工作流程中创建动态变量名称?

我想要一些代码,其中某些文件的内容放在一个变量中。

我知道这很简单:

ForEach ($file in $files) { 
    $list = Get-content $srcdirectory\$file
    $longlist = $longlist + $list
}

这样,一个文件的内容放在$list内,然后放在$longlist中。然后从下一个文件开始,将该内容放入$list,然后将其添加到$longlist$list中的旧内容被覆盖新内容,但在旧内容之后,新内容将添加$longlist

但我想并行执行此操作,因此每个文件都会同时读取以提高速度 所以我的想法是创建一个workflowForeach -Parallel必需),在其中放置一个ForEach -Parallel循环,并为每个文件(因此每个'线程')使用一个不同的变量稍后在脚本中组合这些变量 我试过这个:

workflow workflow1 {
    ForEach -Parallel ($file in $files) { 
        $list = Get-content $file
        New-Variable -Name "var$file" -Value $list
    }
}

但由于这不适合工作流程,所以不会这样做 我怎么能实现这个呢?

注意:我已经尝试使用作业实现这一点,但这比文件后文件慢了大约10倍,这不是我想要的。我希望它比文件一样快。
我还阅读了一些关于运行空间的内容,但我无法找到一个很好的解释或教程。

0 个答案:

没有答案