当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:Break、Return 和 Exit 之间的区别

作者:精品下载站 日期:2024-12-14 07:33:55 浏览:13 分类:玩电脑

PowerShell:Break、Return 和 Exit 之间的区别


在这篇博文中,我将向您展示 PowerShell 脚本中广泛使用的三种 PowerShell 语句的区别。我说的是中断、返回和退出。我将用三个例子来解释。让我们开始吧。

休息

break语句提供了一种退出当前控制块(循环!)的方法,技术参考:

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

这在特定情况下意味着什么?让我们看一个例子。这里是。

function Test-Break {

    $i = 0
    Clear-Host
    while ($true)
    {
        if (($i+=1) -ge 3)
        {
            break # exits the loop and passes over to line 13 
        }
    Write-Output $i
    }
    Write-Output "Finished testing break." # is displayed - out of loop
}


注意第 9 行!当您运行 Test-Break 时,您将看到循环在 2 处停止并且第 13 行执行,因为仅中断语句 离开循环并传递到循环外的代码。这是输出:

[玩转系统] PowerShell:Break、Return 和 Exit 之间的区别

好吧,这让我想到了 return 语句。

返回

根据 Microsoft 参考:退出当前作用域,可以是函数、脚本或脚本块。

链接:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_return?view=powershell-7

好吧,我们再举一个例子。

function Test-Return {

    Clear-Host
    $i = 0

    while ($true)
    {
        if (($i += 1) -ge 3)
        {
            return # terminates entire function
        }
        Write-Output $i ### is not displayed if $i is 3 or higher
    }
    Write-Output "Finished testing return." # is NOT displayed - out of function
}

在此示例中,return终止当前函数,这意味着第 12 行和第 14 行未被处理,因此不会显示。这是输出:

[玩转系统] PowerShell:Break、Return 和 Exit 之间的区别

这引出了我的最后一句话:退出

出口

Exit终止当前的PowerShell会话。请注意,只有当您在 powershell.exe、pwsh.exe (PowerShell 7) 中执行脚本并且不在 Visual Studio Code 中中执行脚本时,才会发生这种情况。

这是一个例子。该函数在终止处停止 2 秒,以便您可以看到它在哪里停止并终止 PowerShell。

function Test-Exit {

    Clear-Host
    $i = 0

    while ($true)
    {
        if (($i += 1) -ge 3)
        {
            Start-Sleep -Seconds 3
            exit # exits the session (close PowerShell window and related process)
        }
        Write-Output $i
    }
}

如果运行 Test-Exit,您会注意到循环在 2 处停止,然后 2 秒后 PowerShell 窗口将关闭。

好的,今天就这样。
下次见。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯