「foreach-object」の使い方

「foreach-object」はエイリアスの「foreach」として使われる事が多いですね。

以下の構文で利用します。

foreach-object {前処理} {ループ処理} {後処理}

foreach-object {ループ処理}


それぞれのサンプルは以下です。

カレントディレクトリのファイル/フォルダ一覧を表示する
MSH C:\> ls | foreach {$i=0} {$i+=1 ; "$i $_" } {"***Found $i objects***"}
1 CLDMA.LOG
2 devicetable.log
3 odbcconf.log
4 Documents and Settings
5 Inetpub
6 j2sdk1.4.1_06
7 Program Files
8 temp
9 test
10 TestDir
11 WINNT
12 WUTemp
13 マイ ダウンロード
***Found 13 objects***
プロセス名一覧を表示する
MSH C:\> ps | foreach {$_.name}
BsCLiP
BSKP-U201 Skype Phone
CCAPP
CCEVTMGR
CCPROXY
(省略)

【追記】

oka326さんに指摘されて気づきましたが、
「foreach-object」と「foreachステートメント」をごっちゃに考えていました。
よって修正です。


「foreachステートメント」は以下の構文で利用します。

foreach (オブジェクト in コレクションオブジェクト) {ループ処理}

「foreachステートメント」を利用したサンプルです。

Wで始まるプロセス名を表示する
MSH C:\> foreach ($process in ps "w*") {$process.name}
WINLOGON
WinMgmt