我正在尝试读取文件夹中的文本文件,并通过两个工作流程阅读内容。是否可以在另一个工作流程内调用工作流程?
workflow ReadFilesFromFolder
{
$folderPath = 'C:\Users\MyName\MyFolder'
Get-ChildItem $folderPath -Filter *.txt |
Foreach-Object {
ReadTextFile $_.FullName
}
}
workflow ReadTextFile
{
param($path)
$lines = Get-Content $path
ForEach -Parallel ($line in $lines)
{
$line
}
}
PS:Foreach parallel只接受工作流程。
答案 0 :(得分:3)
您必须明确使用名称指定参数。看起来您无法调用Foreach-Object
cmdlet中的工作流 - 但foreach
似乎有效:
workflow ReadFilesFromFolder
{
$folderPath = 'C:\Users\MyName\MyFolder'
$items = Get-ChildItem $folderPath -Filter *.txt
foreach($item in $items)
{
ReadTextFile -path $item.FullName
}
}
workflow ReadTextFile
{
param($path)
$lines = Get-Content $path
ForEach -Parallel ($line in $lines)
{
$line
}
}