Wie funktioniert Select-Objekt Stopp der pipeline in der PowerShell v3?

In der PowerShell v2, die folgende Zeile:

1..3| foreach { Write-Host "Value : $_"; $_ }| select -First 1

Anzeigen würde:

Value : 1
1
Value : 2
Value : 3

Da alle Elemente geschoben wurden entlang der pipeline. Jedoch, in v3 die oben genannten Zeile wird nur angezeigt:

Value : 1
1

Die pipeline angehalten wird, bevor die 2 und 3 gesendet werden, um Foreach-Object (Hinweis: die -Wait Schalter für Select-Object erlaubt es, alle Elemente zu erreichen, die foreach block).

Wie funktioniert Select-Object Stopp der pipeline, und ich kann jetzt aufhören, die pipeline von einem foreach oder aus meiner eigenen Funktion?

Edit: ich weiß, ich kann wickeln, die eine pipeline in eine do...while-Schleife und weiterhin aus der pipeline. Ich habe auch festgestellt, dass in der v3 kann ich tun so etwas wie dieses (es funktioniert nicht in v2):

function Start-Enumerate ($array) {
    do{ $array } while($false)  
}

Start-Enumerate (1..3)| foreach {if($_ -ge 2){break};$_}; 'V2 Will Not Get Here'

Aber Select-Object erfordert nicht eine dieser Techniken, so hoffte ich, dass es eine Möglichkeit, die pipeline zu stoppen von einem einzelnen Punkt in der pipeline.

InformationsquelleAutor Rynant | 2012-01-05
Schreibe einen Kommentar