다음을 통해 공유


Wait-Process

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

구문

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

Description

이 cmdlet은 Linux 또는 macOS에서 작동하지 않습니다.

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

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

예제

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

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

$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid

cmdlet은 Get-Process 메모장 프로세스의 프로세스 ID를 가져오고 변수에 $nid 저장합니다. Stop-Process 에 저장된 ID를 사용하여 프로세스를 중지합니다 $nid. Wait-Process는 메모장 프로세스가 중지될 때까지 기다립니다.

예제 2: 프로세스 지정

이 예제에서는 프로세스를 지정하는 세 가지 메서드를 Wait-Process보여 줍니다. 첫 번째 명령은 메모장 프로세스를 가져오고 변수에 $p 저장합니다. 두 번째 명령은 Id 매개 변수를 사용하고, 세 번째 명령은 Name 매개 변수를 사용하고, 네 번째 명령은 InputObject 매개 변수를 사용합니다.

$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p

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

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

이 예제에서는 Wait-Process OutlookWinword 프로세스가 중지되기까지 30초 동안 기다립니다. 두 프로세스가 모두 중지되지 않으면 cmdlet에 종료되지 않는 오류와 명령 프롬프트가 표시됩니다.

Wait-Process -Name outlook, winword -Timeout 30

매개 변수

-Any

여러 프로세스가 전달되면 Wait-Processcmdlet은 반환하기 전에 모든 프로세스가 종료될 때까지 기다립니다. 이 매개 변수를 사용하면 프로세스가 종료될 때 cmdlet이 반환됩니다. 나머지 프로세스는 계속 실행됩니다.

이 매개 변수는 PowerShell 7.4에 추가되었습니다.

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

-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

-PassThru

기본적으로 이 cmdlet은 아무것도 출력하지 않습니다. 이 매개 변수를 사용하여 cmdlet은 대기한 프로세스를 나타내는 개체를 반환합니다.

이 매개 변수는 PowerShell 7.4에 추가되었습니다.

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

-Timeout

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

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

입력

Process

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

출력

None

기본적으로 이 cmdlet은 출력을 반환하지 않습니다.

Process

PassThru 매개 변수를 사용할 때 이 cmdlet은 프로세스 개체를 반환합니다.

참고

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

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