如何退出PowerShell中的Invoke-Command -ScriptBlock?

时间:2017-04-17 06:38:44

标签: powershell

如何退出远程服务器上运行的invoke-command脚本块?我试过next

这是我的代码:

$Res = Invoke-Command -Session $Ses -ArgumentList ($ROOTdir, $PARAMS.SYS, $PARAMS.main, $PARAMS.zip) -ScriptBlock {
    Param($ROOTdir, $SYS, $MAIN, $ZIP)
    $list | %{
        $completed = $false
        $retrycount = 1
        while (-not $completed) {
            try {
                $Copytime = (Measure-Command {
                    Copy-Item -Path $_.FullName -Destination ($SYS.KITCHENdir) -Force -ErrorVariable copyerror
                }).TotalSeconds
                $completed = $true
            } catch {
                if ($retrycount -gt $MAIN.Retry ) {
                    break or exit #HOW STOP EXECUTING NEXT STEPS AND EXIT
                } else {
                    Start-Sleep $MAIN.DelayRetry
                    $retrycount++
                }
            }
        }
        #IF copy bad result need stop and exit
        #The final one can produce flavors here, but it does not look quite kosher
        #next steps
    }

1 个答案:

答案 0 :(得分:0)

我怀疑您要使用Exit关键字。

  

“exit关键字用于退出上下文;它将退出   (当前正在运行)代码运行的上下文。这意味着   如果您在脚本中使用此关键字,则启动该脚本   直接从您的控制台,它将退出脚本和   控制台,因为它们都在相同的上下文中运行。但是,如果   您在脚本中的函数中使用exit关键字,然后调用   该函数来自同一个脚本,它只会退出脚本而且   不是整个控制台。 exit关键字最适用于函数,   当在脚本中调用这些函数时。这是一个很好的方式   终止函数的执行。“