PowerShell中的continue,break, return, exit

代码

比如我们有这样一个脚本文件:test.ps1

"start" | Write-Host
#continue
#break
#return
#exit

foreach($i in 1..10)
{
    if($i -eq 5)
    {
        #continue
        #break
        #return
    }
    $i | Write-Host
}

11..20 | ForEach-Object{
   if($_ -eq 15)
    {
        continue
        #break
        #return
    }
    $_ | Write-Host
}

"end" | Write-Host

结果

  1. exit任何情况下,都表示结束
  2. 直接运行test.ps1, 前5行中的continue,break,return都表示结束
  3. 假设我们通过test2.ps1调用test.ps1, 那么continue,break会阻塞执行,return则表示运行完成
  4. foreach中,和其他编程语言for中一样,continue会跳出本次循环,break会跳出循环,return会结束
  5. ForEach-Object中,continue和break会阻塞,return表示跳过本次循环。

参考

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_continue?view=powershell-5.1
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_break?view=powershell-5.1
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_return?view=powershell-5.1