The Wait-Job command in Windows PowerShell is a powerful tool that allows you to pause a script or command until a job is complete. It is a useful command when you need to wait for a job to finish before continuing with the script or command. In this article, we will explore the syntax, parameters, inputs, outputs, examples, and tips for using the Wait-Job command.
Syntax
The syntax for the Wait-Job command is as follows:
- Wait-Job [-Job] <Job[]> [-Timeout <Int32>] [-IncludeChildJob] [-IncludeFailed] [-IncludeCompleted] [-IncludeRunning] [-IncludeStopped] [-IncludeSuspended] [-IncludeUnstarted] [-IncludeDisconnected] [-IncludeInProgress] [-IncludeCanceled] [-IncludeOther] [-IncludeFailed] [-IncludeFinished] [-IncludeNotStarted] [-IncludeSuccess] [-IncludeWarning] [-IncludeError] [-IncludeInformation] [-IncludeVerbose] [-IncludeDebug] [-IncludeProgress] [-IncludeAll] [-WhatIf] [-Confirm] [<CommonParameters>]
Parameters
The Wait-Job command has several parameters that can be used to customize the command. These parameters are as follows:
Parameter | Description |
---|---|
Job | Specifies the job object to wait for. |
Timeout | Specifies the maximum amount of time to wait for the job to complete. |
IncludeChildJob | Specifies whether to wait for child jobs. |
IncludeFailed | Specifies whether to wait for failed jobs. |
IncludeCompleted | Specifies whether to wait for completed jobs. |
IncludeRunning | Specifies whether to wait for running jobs. |
IncludeStopped | Specifies whether to wait for stopped jobs. |
IncludeSuspended | Specifies whether to wait for suspended jobs. |
IncludeUnstarted | Specifies whether to wait for unstarted jobs. |
IncludeDisconnected | Specifies whether to wait for disconnected jobs. |
IncludeInProgress | Specifies whether to wait for jobs in progress. |
IncludeCanceled | Specifies whether to wait for canceled jobs. |
IncludeOther | Specifies whether to wait for other jobs. |
IncludeFinished | Specifies whether to wait for finished jobs. |
IncludeNotStarted | Specifies whether to wait for jobs that have not yet started. |
IncludeSuccess | Specifies whether to wait for jobs that have completed successfully. |
IncludeWarning | Specifies whether to wait for jobs that have completed with a warning. |
IncludeError | Specifies whether to wait for jobs that have completed with an error. |
IncludeInformation | Specifies whether to wait for jobs that have completed with an informational message. |
IncludeVerbose | Specifies whether to wait for jobs that have completed with a verbose message. |
IncludeDebug | Specifies whether to wait for jobs that have completed with a debug message. |
IncludeProgress | Specifies whether to wait for jobs that have completed with a progress message. |
IncludeAll | Specifies whether to wait for all jobs. |
WhatIf | Specifies whether to display a message that describes the effect of the command without actually executing the command. |
Confirm | Specifies whether to prompt for confirmation before executing the command. |
Inputs
The Wait-Job command takes a job object as its input. This job object can be obtained by using the Get-Job command.
Outputs
The Wait-Job command does not produce any output.
Examples
The following example shows how to use the Wait-Job command to wait for a job to complete before continuing with the script:
- $job = Get-Job -Name “MyJob”
- Wait-Job -Job $job
- Continue-Script
The following example shows how to use the Wait-Job command to wait for a job to complete with a timeout of 10 seconds:
- $job = Get-Job -Name “MyJob”
- Wait-Job -Job $job -Timeout 10
- Continue-Script
Tips
Here are some tips for using the Wait-Job command:
- Use the Get-Job command to get the job object that you want to wait for.
- Use the Timeout parameter to specify the maximum amount of time to wait for the job to complete.
- Use the IncludeChildJob parameter to specify whether to wait for child jobs.
- Use the IncludeFailed, IncludeCompleted, IncludeRunning, and IncludeStopped parameters to specify which jobs to wait for.
- Use the WhatIf and Confirm parameters to verify the effect of the command before executing it.