Поскольку For-Each
объект является командлетом, а не циклом, а продолжение / разрыв не применяются к нему.
Например, если у вас есть:
$b = 1,2,3
foreach($a in $b){
$a | foreach { if($_ -eq 2) {continue;} else {write-host $_} }
write-host "after"
}
вы получите вывод:
1
after
3
after
Это потому, что continue применяется к внешнему циклу foreach, а не к командлету foreach-object. В отсутствие цикла, самого внешнего уровня, следовательно, создается впечатление, что он действует как разрыв.
Так как же вы продолжаете, как поведение? Одним из способов является, где-объект курса:
1..100 | ?{ $_ % 7 -eq 0} | %{write-host $_ is a mutliple of 7}