다음을 통해 공유


Wait-Process

더 많은 입력을 수락하기 전에 프로세스가 중지될 때까지 기다립니다.

구문

Wait-Process
    [-Name] <String[]>
    [[-Timeout] <Int32>]
    [<CommonParameters>]
Wait-Process
    [-Id] <Int32[]>
    [[-Timeout] <Int32>]
    [<CommonParameters>]
Wait-Process
    [[-Timeout] <Int32>]
    -InputObject <Process[]>
    [<CommonParameters>]

Description

cmdlet은 Wait-Process 입력을 수락하기 전에 하나 이상의 실행 중인 프로세스가 중지될 때까지 기다립니다. PowerShell 콘솔에서 이 cmdlet은 프로세스가 중지될 때까지 명령 프롬프트를 표시하지 않습니다. 프로세스 이름 또는 프로세스 ID(PID)로 프로세스를 지정하거나 프로세스 개체를 파이프할 수 있습니다 Wait-Process.

Wait-Process 는 로컬 컴퓨터에서 실행되는 프로세스에서만 작동합니다.

예제

예제 1: 프로세스 중지 및 대기

PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid

다음은 메모장 프로세스를 중지한 다음 다음 명령을 계속하기 전에 프로세스가 중지될 때까지 기다리는 예제입니다.

첫 번째 명령은 cmdlet을 Get-Process 사용하여 메모장 프로세스의 ID를 가져옵니다. 변수에 ID를 저장합니다 $nid .

두 번째 명령은 cmdlet을 Stop-Process 사용하여 ID가 저장된 프로세스를 중지합니다 $nid.

세 번째 명령은 메모장 프로세스가 중지될 때까지 대기하는 데 사용합니다 Wait-Process . Id 매개 변수를 Wait-Process 사용하여 프로세스를 식별합니다.

예제 2: 프로세스 지정

PS C:\> $p = Get-Process notepad
PS C:\> Wait-Process -Id $p.id
PS C:\> Wait-Process -Name "notepad"
PS C:\> Wait-Process -InputObject $p

이러한 명령은 프로세스를 Wait-Process지정하는 세 가지 방법을 보여 줍니다. 첫 번째 명령은 메모장 프로세스를 가져오고 변수에 $p 저장합니다.

두 번째 명령은 Id 매개 변수를 사용하고, 세 번째 명령은 Name 매개 변수를 사용하고, 네 번째 명령은 InputObject 매개 변수를 사용합니다.

이러한 명령은 동일한 결과를 가지며 서로 바꿔 사용할 수 있습니다.

예제 3: 지정된 시간 동안 프로세스 대기

PS C:\> Wait-Process -Name outlook, winword -Timeout 30

이 명령은 Outlook 및 Winword 프로세스가 중지되기까지 30초 동안 기다립니다. 두 프로세스가 모두 중지되지 않으면 cmdlet에 종료되지 않는 오류와 명령 프롬프트가 표시됩니다.

매개 변수

-Id

프로세스의 프로세스 ID를 지정합니다. 여러 ID를 지정하려면 쉼표로 ID를 구분합니다. 프로세스의 PID를 찾으려면 .를 입력합니다 Get-Process.

형식:Int32[]
별칭:PID, ProcessId
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-InputObject

프로세스 개체를 제출하여 프로세스를 지정합니다. 프로세스 개체가 포함된 변수를 입력하거나 cmdlet과 같은 Get-Process 프로세스 개체를 가져오는 명령이나 식을 입력합니다.

형식:Process[]
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Name

프로세스의 프로세스 이름을 지정합니다. 여러 이름을 지정하려면 쉼표로 이름을 구분합니다. 와일드카드 문자는 지원되지 않습니다.

형식:String[]
별칭:ProcessName
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Timeout

지정된 프로세스가 중지될 때까지 이 cmdlet이 대기하는 최대 시간(초)을 지정합니다. 이 간격이 만료되면 명령은 여전히 실행되고 있는 프로세스를 나열하는 종료되지 않은 오류를 표시하고 대기를 종료합니다. 기본적으로 시간 제한은 없습니다.

형식:Int32
별칭:TimeoutSec
Position:1
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

Process

프로세스 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.

참고

  • 이 cmdlet은 System.Diagnostics.Process 클래스의 WaitForExit 메서드를 사용합니다.

  • 달리 Start-Process -Wait식별 Wait-Process 된 프로세스에 대해서만 대기합니다. Start-Process -Wait 는 프로세스 트리(프로세스 및 모든 하위 항목)가 종료될 때까지 기다린 후 컨트롤을 반환합니다.