Powershell ForEach Loop Statement Tutorial with Examples
ForEach
は、オブジェクト、文字列、数値などの指定されたリスト、配列、またはコレクションに対して反復ま ForEachは非常に一般的なループメカニズムで、ファイル、数字、文字列、プロセスなどをループするようなさまざまなケースを使用できます。 Powershellバージョン4.0は、ForEach
ループにいくつかのパフォーマンスの改善をもたらします。
PowerShell ForEach構文
Foreach文は、我々はITEM
COLLECTION
CODE-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-ChildItem
dir
MSDOSコマンドのようなファイルとフォルダを一覧表示します。 この出力は、Echo
コマンドでコンソールに書き込まれます。div>
foreach($file in Get-ChildItem) {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}