, 다음 행Select-Object는 PowerShell v3에서 파이프 라인을 어떻게 중지합니까? PowerShell을 V2에
1..3| foreach { Write-Host "Value : $_"; $_ }| select -First 1
겠습니까 표시 모든 요소들은 파이프 라인을 푸시 다운되었으므로
Value : 1
1
Value : 2
Value : 3
. 그러나, V3 위 행은 표시 (2) 및 (3) Foreach-Object
보내기 전에
Value : 1
1
파이프 라인이 정지된다 (참고 : Select-Object
대한 -Wait
스위치 모든 요소가 foreach
블록에 도달 할 수 있음).
어떻게 Select-Object
는 파이프 라인을 멈추지 않고, 지금은 foreach
나 내 자신의 함수의 파이프 라인을 중지 할 수 있습니다?
편집 : 내가 작업 ... 할 일에 파이프 라인을 포장 루프하면서 파이프 라인에서 계속 알고있다.
function Start-Enumerate ($array) {
do{ $array } while($false)
}
Start-Enumerate (1..3)| foreach {if($_ -ge 2){break};$_}; 'V2 Will Not Get Here'
그러나 Select-Object
그래서 내가 할 수있는 방법이 있었다는 것을 기대했다 이러한 기술 중 하나를 필요로하지 않는다 : 나는 또한 v3에서 나는 이런 식으로 뭔가를 (그것이 V2에서 작동하지 않습니다) 할 수있는 것을 발견했다 파이프 라인의 단일 지점에서 파이프 라인을 중지하십시오.
당신이 StopUpstreamCommandsException를 찾고 있습니다,하지만 당신은 할 수 그것이 내부이므로 사용하지 마십시오. 다음은 MS 연결 제안입니다. https://connect.microsoft.com/PowerShell/feedback/details/768650/enable-users-to-stop-pipeline-making-stopupstreamcommandsex- public –
감사합니다. LarsTruijens가 나를 가리키고 있습니다. 그; 나는 그것을 투표했다. – Rynant