2016-09-27 81 views
0

我正在使用powershell讀取具有文本行和顯示項目的文本文件。我如何使用並行foreach而不是foreach。我試過foreach和它的工作,但foreach並行語法沒有工作。Powershell foreach語法錯誤

$lines = Get-Content myFile.txt | Where {$_ -notmatch '^\s+$'} 
Foreach ($Item in $lines) 
{ 
$Item 
} 

MyFile.Txt 

newyork is great 
seattle is cold 
florida is hot 

這是我試過

$lines = Get-Content myFile.txt | Where {$_ -notmatch '^\s+$'} 
     ForEach -Parallel ($Item in $lines) 
      { 
      $Item 
      } 

錯誤:-parallel一個只用於工作流程

回答

1

要使用ForEach -parallel,用你的代碼是這樣的:

workflow myworkflow{ 
    $lines = Get-Content myFile.txt | Where {$_ -notmatch '^\s+$'} 
    ForEach -Parallel ($Item in $lines){ 
     sequence{ 
      $Item 
     } 
    } 
} 

然後,請致電您的工作流程:myworkflow

工作流程是非常有用的,在這裏你可以找到更多的信息:

希望這是有用的

+0

真的很有幫助。在這種情況下序列的用途是什麼?即使平行,我也看到每個記錄一次顯示一個記錄。 – Kurkula

+0

太棒了!這是'sequence'關鍵字的定義:_Sequence關鍵字在並行腳本塊中按順序運行命令。序列腳本塊與其他命令並行運行,但序列腳本塊中的命令按指定的順序依次運行。_查看[this](https://technet.microsoft.com/en-us/) library/jj574157(v = ws.11).aspx)舉例:) –