2016-09-27 9 views
1

フォルダ内のテキストファイルを読み込み、2つのワークフローでコンテンツを読み込もうとしています。別のワークフロー内でワークフローを呼び出すことは可能ですか?ワークフロー内のワークフローを呼び出す

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パラレルはワークフローのみを受け入れます。あなたが明示的にをする必要が

答えて

2

は彼らの名前でパラメータを指定します。

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 
    } 
} 
+0

それはReadTextFileコマンドレットとして認識されないエラーがスローされます。しかしforeachは動作するようです - あなたはForeach-Objectレット内のワークフローを呼び出すことができないようにそれはまた見えます。 – Kurkula

+1

あなたは正しいです。 'Foreac-Object'コマンドレット内で呼び出すことはできないようです。しかしforeachループで動作します。私は私の答えを編集します。 –

+0

私は推測するいくつかの問題があります。 Get-Item:引数 'System.Management.Automation.PSDataCollection'1 [System.Management.Automation.PSObject]'を受け入れる位置パラメータが見つかりません。 PurgeStreamsFromFolderで :3文字:3 + + CategoryInfo:InvalidArgument:(:) [プレゼント-アイテム]、ParameterBindingException + FullyQualifiedErrorId:PositionalParameterNotFound、Microsoft.PowerShell.Commands.GetItemCommand + PSComputerName:[ローカルホスト] – Kurkula

関連する問題