Powershell ForEach Loop Statement Tutorial with Examples
ForEachは、オブジェクト、文字列、数値などの指定されたリスト、配列、またはコレクションに対して反復ま ForEachは非常に一般的なループメカニズムで、ファイル、数字、文字列、プロセスなどをループするようなさまざまなケースを使用できます。 Powershellバージョン4.0は、ForEachループにいくつかのパフォーマンスの改善をもたらします。
PowerShell ForEach構文
Foreach文は、我々はITEMCOLLECTIONCODE-BLOCKを使用する次の構文を持っています。
ForEach(ITEM in COLLECTION){ CODE BLOCK}
- ITEMは、反復ごとに変更される単一の値またはオブジェクトです。
 - コレクションは、配列、コレクション、値のリスト、または1,2,3,4のようなオブジェクトです。
 - コードブロックは、一般的にITEMを使用する実際の操作が実行されるブロックです。 このブロックは、単一または複数の行にすることができます。
 
文字列の配列を介してForeach
簡単な方法で、指定された文字列配列のリストを反復処理できます。 複数の都市名を保持する”cities”という名前の配列を反復処理します。 以下のようなコマンド”echo”で各都市名を印刷します。P>
$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
すべての都市名がpowershellに印刷されていることがわかります単一行のターミナル。
Foreach Through An Collection Of Numbers
前の例では、指定された文字列のリストをループしました。 また、数字のリストを反復またはループすることもできます。 numbersという名前の配列を作成し、この数値配列の各項目を反復処理します。P>
$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
$_Usage
いくつかのコマンドレットを使用してコマンドレットの出力をforeachにリダイレクトする場合、各項目またはオブジェクトに”$”を使用できます。 たとえば、”Get-Process”コマンドレットを使用すると、各項目またはプロセスは各反復で$に割り当てられます。 Name$.Nameのような属性を指定して、以下のように印刷できます。
PS> Get-Process | ForEach-Object {$_.ProcessName}
We can also print multiple attributes in foreach by delimiting them with comma.
PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
Foreach Through Files
We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItemdirMSDOSコマンドのようなファイルとフォルダを一覧表示します。 この出力は、Echoコマンドでコンソールに書き込まれます。div>
foreach($file in Get-ChildItem) {Echo $file}
のような特定のファイル拡張子を介して、指定された拡張子を具体的にリストすることができます。 拡張子は、一般的にテキスト、avi、mkv、mp3、docなどのようなファイルタイプを提供します。 この例では、*.batまたはBatファイルのみをリストします。P>
 foreach($file in Get-ChildItem *.bat) {Echo $file}
autoexec.batが表示されます。
FOREACH Over CSV File
CSVファイルは、構造化された方法でテキストデータを格納するために使用されます。 以下のようにCSVファイルの各行で簡単にforeachできます。 この例では、Ip CSVファイルを読み取り、Powershellコンソールを印刷するためにforeachに提供します。p>
$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}