HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > 制御構文 Tips メニュー

05.foreachステートメント

 
UPDATE:2008/02/15    
 


 foreach ステートメントは、項目のコレクションに含まれるすべての項目を順番に処理するための言語コマンドです。

 構文は下記の通りです。

foreach ($<項目> in $<コレクション>)
{<コマンド ブロック>}

sample1では、foreach ループでは、$weekday という配列の値が表示されます。

$weekdayから値が1つずつ取り出され、$wに代入され、Write-Hostコマンドレットで$wの値が表示されます。

sample1

PS C:\Users\HIRO> $weekday = "Mon","Tue","Wed","Thu","Fri"
PS C:\Users\HIRO> foreach ($w in $weekday)
>> {
>> Write-Host $w
>> }
>>
Mon
Tue
Wed
Thu
Fri

Foreach ステートメントは、項目のコレクションを返すコマンドレットと共に使用することもできます。
sample2では、Get-Serviceコマンドから返される項目でStatusが"Running"になっているもののサービス名を表示します。

sample2

PS C:\Users\HIRO> foreach ( $s in Get-Service )
>> {
>> if ($s.Status -eq "running")
>> {
>> Write-Host $s.ServiceName
>> }
>> }
>>

PowerShell では、コマンド パイプライン内に foreach が現れると、Foreach- Object を呼び出す foreach エイリアスが使用されます。
パイプラインで foreach を使用するときの構文は次のとおりです。

<コマンド> | foreach {<コマンド ブロック>}

sample3はsample2と同じ結果を返します。

sample3

PS C:\Users\HIRO> Get-Service | foreach {
>> if ( $_.Status -eq "running")
>> {
>> Write-Host $_.ServiceName
>> }
>> }
>>