itsource

"if" 문을 사용하여 마지막 명령의 종료 코드 확인

mycopycode 2023. 9. 14. 23:15
반응형

"if" 문을 사용하여 마지막 명령의 종료 코드 확인

마지막 명령의 상태를 확인하고 싶고, 종료 코드를 기준으로 명령이 더 실행될 것입니다.

마지막으로 실행한 명령은 다음과 같습니다.

$hiveJob = Start-AzureHDInsightJob -Cluster $clusterName -JobDefinition  $hiveJobDefinition
Wait-AzureHDInsightJob -Job $hiveJob -WaitTimeoutInSeconds 5400
Get-AzureHDInsightJobOutput -Cluster $clusterName -JobId $hiveJob.JobId -StandardOutput

출력은 다음과 같습니다.

Cluster         : crmhdinsight  
ExitCode        : 0  
Name            : Hive: show tables;  
PercentComplete :   
Query           : show tables;  
State           : Completed  
StatusDirectory : 7dc4b67f-99a9-4c6b-a9f3-ffe8b4e29c7e  
SubmissionTime  : 7/28/2014 11:44:04  
AMJobId         : job_1406103802152_0053  

이제 종료 코드가 0인 경우에만 추가 명령을 실행하고자 합니다.어떻게 쓰는 거지?if이 상태에 대한 진술?

'출구코드'를 말씀하시는 거죠?당신 말이 맞습니까?$LastExitCode 자동 변수는 윈도우 프로그램을 호출할 때만 채워집니다. 예를 들어 RAR을 호출하면 다음과 같습니다.

$x=rar
$LastExitCode

(RAR이 설치되어 있는 경우) 출구 코드 7을 반환합니다.

그러나 cmdlets는 이 변수를 채우지 않습니다.다른 자동 변수를 사용할 수 있습니다.$?다음의 경우:

$x=gci
$?

줄 뿐입니다.$True명령이 성공적으로 완료된 경우 또는$False잘못이 있으면요

Get-Help about_경우:

구문 다음 예제에서는 If 문 구문을 보여 줍니다.

   if (<test1>)
       {<statement list 1>}
   [elseif (<test2>)
       {<statement list 2>}]
   [else
       {<statement list 3>}]

참고: 다른 경우와 다른 경우의 대괄호는 선택사항임을 나타냅니다.

반환된 개체를 변수에 할당합니다.

$hiveJob = Start-AzureHDInsightJob -Cluster $clusterName -JobDefinition  $hiveJobDefinition
Wait-AzureHDInsightJob -Job $hiveJob -WaitTimeoutInSeconds 5400
$Result = Get-AzureHDInsightJobOutput -Cluster $clusterName -JobId $hiveJob.JobId -StandardOutput

그리고나서

if ($Result.ExitCode -eq 0)
  {
    #More commands
  }

언급URL : https://stackoverflow.com/questions/24994595/checking-exit-code-of-last-command-using-if-statement

반응형