2017-04-17 95 views
1

如何退出在遠程服務器上運行的invoke-command腳本塊?我試過next如何退出PowerShell中的Invoke-Command-ScriptBlock?

這裏是我的代碼:

$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 
    } 

回答

0

要使用Exit關鍵字我懷疑。

「出口關鍵字用於從上下文退出;將退出在您的代碼運行 (當前運行)上下文這意味着 ,如果你在腳本中使用此關鍵字,並啓動腳本 直接從您的控制檯,它將退出腳本和 控制檯,因爲它們都運行在相同的上下文中。但是,如果 您在腳本中的函數中使用exit關鍵字,並調用 函數同樣的腳本,它只會退出腳本,而不是整個控制檯。exit關鍵字最適用於函數 ,當這些函數是ca在劇本里。這是一個偉大的方式來終止 功能的執行。」