48

I want to check the status of last command and based on the exit code, the commands will be executed further.

The last command execute was:

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

The output is:

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  

Now, I want to execute further commands only if the exitcode is zero. How do I write an if statement for this condition?

2 Answers 2

77

You're talking about "exit code". If you mean $LastExitCode automatic variable, it is only populated when you call windows program, RAR for example:

$x=rar
$LastExitCode

It will return exit code 7 (if you have RAR installed).

cmdlets, however, don't fill this variable. You can use another automatic variable $? for this:

$x=gci
$?

It only gives $True if command completed successfully or $False if there was an error.

Sign up to request clarification or add additional context in comments.

Comments

6

From Get-Help about_If:

Syntax The following example shows the If statement syntax:

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

Note: the square brackets around the elseif and else indicate they are optional.

Assign your returned object to a variable:

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

Then

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.