是否可以在PowerShell工作流程中创建动态变量名称?
我想要一些代码,其中某些文件的内容放在一个变量中。
我知道这很简单:
ForEach ($file in $files) {
$list = Get-content $srcdirectory\$file
$longlist = $longlist + $list
}
这样,一个文件的内容放在$list
内,然后放在$longlist
中。然后从下一个文件开始,将该内容放入$list
,然后将其添加到$longlist
($list
中的旧内容被覆盖新内容,但在旧内容之后,新内容将添加到$longlist
。
但我想并行执行此操作,因此每个文件都会同时读取以提高速度
所以我的想法是创建一个workflow
(Foreach -Parallel
必需),在其中放置一个ForEach -Parallel
循环,并为每个文件(因此每个'线程')使用一个不同的变量稍后在脚本中组合这些变量
我试过这个:
workflow workflow1 {
ForEach -Parallel ($file in $files) {
$list = Get-content $file
New-Variable -Name "var$file" -Value $list
}
}
但由于这不适合工作流程,所以不会这样做 我怎么能实现这个呢?
注意:我已经尝试使用作业实现这一点,但这比文件后文件慢了大约10倍,这不是我想要的。我希望它比文件一样快。
我还阅读了一些关于运行空间的内容,但我无法找到一个很好的解释或教程。