2016-10-30 6 views
0

Invoke-Sqlcmd2 오류가 발생하면 나머지 스크립트를 종료하지 못하게 할 방법이 있습니까?Invoke-Sqlcmd2가 오류 발생시 종료되지 않음

이 명령이 실패하더라도 나머지 스크립트를 계속 실행하고 싶습니다.

저는 코드 주위를 파헤 쳤습니다. 제 생각에는 -ErrorAction 매개 변수와 관련이 있다는 것입니다. 다음은

스크립트 라인 488이다 :

Catch # For other exception 
{ 
    Write-Verbose "Capture Other Error" 

    $Err = $_ 

    if ($PSBoundParameters.Verbose) {Write-Verbose "Other Error: $Err"} 

    switch ($ErrorActionPreference.tostring()) 
    { 
     {'SilentlyContinue','Ignore' -contains $_} {} 
     'Stop' {  Throw $Err} # Removing this line doesn't work 
     'Continue' { Throw $Err} 
     Default { Throw $Err} 
    } 
} 

'비 종료'로이 명령을하는 방법에 어떤 아이디어?

해결책 : 주셔서 감사합니다. try-catch 트랩에서 invoke-sqlcmd2의 오류 처리 섹션을 래핑하는 결과를 낳았습니다.

+0

Catch {}는 코드에서 발생하는 예외를 처리합니다. switch 문 또는 전체 코드에 주석을 달면 작동합니다. 중지, 계속 및 기본 작업에서 중지됩니다. – Martin

+1

또는 더 나은 방법은 $ Err에 명시된 오류를 제거하는 것입니다. 그것은 무엇을 말하는가? – Martin

+0

Martin 감사합니다. 이 정보는 위의 솔루션을 도왔습니다. – Mike

답변

0

try catch 블록 안에 Invoke-SQLCMD2를 넣고 발생한 오류를 기록 할 수 있습니다. 그런 식으로 오류를 처리하면 스크립트가 계속 실행됩니다.