How to Terminate a Script in Windows PowerShell
-
Use the
ExitCommand to Terminate a Script in Windows PowerShell -
Use the
ThrowCommand to Terminate a Script in Windows PowerShell -
the
ReturnCommand -
the
breakCommand -
the
continueCommand
There are many ways to terminate a script in Windows PowerShell. However, some of them may sound similar in terms of context, but their actual purpose is different from each other when it comes to functionality.
This article will enumerate ways to terminate a script in Windows PowerShell and define them one by one.
Use the Exit Command to Terminate a Script in Windows PowerShell
The Exit command will exit your script as derived from its name. If you don’t have an open session, this command will also close your shell or scripting window. The Exit command is also helpful for providing feedback by using exit codes.
exit
Running just the exit command can have an exit code of 0 (default), which means success or normal termination, or 1, which means failure or an uncaught throw.
What’s excellent about exit codes is the exit codes are fully customizable. As long as the exit code is an integer, the exit code is valid. In addition, to know the last exit code, you may output the variable $LASTEXITCODE.
Exit.ps1
Write-Output 'Running sample script.'
exit 200
Example Code:
PS C:\>powershell.exe .\Exit.ps1
PS C:\>Running sample script.
PS C:\>Write-Output $LASTEXITCODE
PS C:\>200
Also, remember that when you call another PowerShell file with an exit command from a running PowerShell script, the running script will also terminate.
Use the Throw Command to Terminate a Script in Windows PowerShell
The Throw command is similar to Exit command with an exit code but is much more informative. You can use the command and a custom expression to generate terminating errors. Usually, the Throw command is used inside the Catch block inside a Try-Catch expression to describe an exception adequately.
Example Code:
Try {
$divideAnswer = 1 / 0
}
Catch {
Throw "The mathematical expression has a syntax error"
}
Output:
The mathematical expression has a syntax error
At line:4 char:5
+ Throw "The mathematical expression has a syntax error"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (The mathematica... a syntax error:String) [], RuntimeException
+ FullyQualifiedErrorId : The mathematical expression has a syntax error
the Return Command
Unlike the Exit command, the Return command will return to its previous calling point and will not close your scripting window.
Usually, we use the Return command to return values from an executed function somewhere in the script.
Example Code:
Function sumValues($int1, $int2) {
Return ($int1 + $int2)
}
# The function sumValues is called below, and the script will return to
# the same line with a value and store it in the output variable
$output = sumValues 1 2
Write-Output $output
Output:
3
the break Command
We use the break command to terminate loops and cases.
Example Code:
$numList = 1, 2, 3, 4, 5, 6, 7, 8
foreach ($number in $numList) {
if ($number -eq 8) {
#Terminate loop if number variable is equal to 8
break
}
Write-Output $number
}
Output:
1
2
3
4
5
6
7
If we have nested loops, we only break from the loop from where the break command is called.
Example Code:
While ($true) {
While ($true) {
#The break command will only break out of this while loop
break
}
#The script will continue to run on this line after breaking out of the inner while loop
}
If you want to break out of a specific nested loop, the break command uses labels as its parameter.
While ($true) {
:thisLoop While ($true) {
While ($true) {
#The break command below will break out of the `thisLoop` while loop.
Break thisLoop
}
}
}
the continue Command
The continue command also terminates the script on the loop level. Still, instead of terminating the whole loop instantly, the continue command only terminates the current iteration and keeps the loop going until all iterations have been processed.
We can say that this is a command to skip something when executing a loop.
Example Code:
$numList = 1, 2, 3, 4, 5, 6, 7, 8
foreach ($number in $numList) {
if ($number -eq 2) {
#The continue command below will skip number 2 and will directly process the next iteration, resetting the process to the top of the loop.
continue
}
Write-Output $number
}
Output:
1
3
4
5
6
7
8
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInRelated Article - PowerShell Script
- How to Get-Acl for a Specific User in PowerShell
- How to Manually Stop a Long Script Execution in PowerShell
- How to Convert PowerShell File to an Executable File
- How to Get the File System Location of a PowerShell Script
- How to Pass an Argument to a PowerShell Script
- How to Run a PowerShell Script From a Batch File
