Powershell Unterschied zwischen foreach als Statement und foreach als Alias für ForEach-Object


Nur als Gedankenstütze, da man immer wieder darauf reinfällt, foreach ist nicht gleich foreach, es hängt immer vom Kontext ab:

Zunächst läuft alles nach Plan, der Aufruf von

foreach ($item in 1..5) {$item}

führt zur Ausgabe von

1
2
3
4
5

und der Aufruf von

1..5 | foreach {$_}

führt zum selben Ergebnis:

1
2
3
4
5

Also alles paletti!

Der Aufruf von

foreach ($item in 1..5) {$item; if ($item -eq 3){return}}

ergibt

1
2
3

Aber der Aufruf von

1..5 | foreach {$_; if ($_ -eq 3){return}}

ergibt

1
2
3
4
5

Am besten auf das Thema geht das Buch “Windows Powershell in Action” vom Manning-Verlag darauf ein. http://www.manning.com/payette2/

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: