【发布时间】:2016-08-19 21:46:47
【问题描述】:
这似乎是一个非常愚蠢的问题,但我无法真正弄清楚。我试图让函数在找到第一个命中(匹配)时停止,然后继续执行脚本的其余部分。
代码:
Function Get-Foo {
[CmdLetBinding()]
Param ()
1..6 | ForEach-Object {
Write-Verbose $_
if ($_ -eq 3) {
Write-Output 'We found it'
# break : Stops the execution of the function but doesn't execute the rest of the script
# exit : Same as break
# continue : Same as break
# return : Executes the complete loop and the rest of the script
}
elseif ($_ -eq 5) {
Write-Output 'We found it'
}
}
}
Get-Foo -Verbose
Write-Output 'The script continues here'
期望的结果:
VERBOSE: 1
VERBOSE: 2
VERBOSE: 3
We found it
The script continues here
我尝试过使用break、exit、continue 和return,但这些都没有让我得到想要的结果。感谢您的帮助。
【问题讨论】:
-
这不是重复的。它询问如何退出函数,而不是如何退出循环。
标签: function powershell exit