You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell Do-while循环实现错误捕获后重试3次再退出的方法

实现方案

你只需要补充重试次数的判断逻辑即可,修改后的完整代码如下:

function loop() {
    $attempts = 0
    $flags = $false
    $maxRetry = 3 # 最大尝试次数,可自行调整

    do {
        try {
            Write-Host '正在执行更新...请稍候!'
            # 替换为实际需要执行的业务逻辑
            # ***Do something action***

            Write-Host '提示:更新执行完成!' -BackgroundColor BLACK -ForegroundColor GREEN
            Start-Sleep 1
            $flags = $false
        } catch {
            Write-Host '错误:更新执行失败!' -BackgroundColor BLACK -ForegroundColor RED
            $attempts++

            # 达到最大尝试次数直接终止
            if ($attempts -ge $maxRetry) {
                Write-Host "累计失败已达$maxRetry次,超过最大尝试次数,任务终止"
                $flags = $false
                break
            }

            Write-Host "当前已失败$attempts次,2秒后重试,剩余可重试次数:$($maxRetry - $attempts)"
            $flags = $true
            Start-Sleep 2
        }
    } while ($flags)
} 

修改说明

  • 新增可配置的$maxRetry变量,后续需要调整重试次数直接修改该变量即可
  • 在异常捕获分支中增加次数判断,达到上限后直接终止循环,不会再继续重试
  • 也可以直接修改循环判断条件为while ($flags -and $attempts -lt $maxRetry),和上述catch块中的break逻辑效果一致,选一种实现即可

内容的提问来源于stack exchange,提问作者user11343272

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:54:01