我的代码看起来像:
1..10 | % {
$i=$_
10..20 | % {
if ($_ -gt 12) {
continue
}
Write-Host $i $_
}
}
为什么输出是:
1 10
1 11
1 12
PoweShell中的continue
语句似乎与其他语言没有什么不同,为什么PowerShell是这样设计的?
如果我将continue
更改为 return
,那么我会得到预期的结果。
正如PeterSerAI在他的评论中指出的那样,您没有在代码中使用循环,而是使用不同的Foreach-Object cmdlet。
只需改用foreach
循环:
foreach($obj in 1.. 10)
{
$i = $obj
foreach($obj2 in 10 ..20) {
if ($obj2 -gt 12) {
continue
}
Write-Host $obj $obj2
}
}