Wait-Process

Menunggu proses dihentikan sebelum menerima lebih banyak input.

Sintaks

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

Deskripsi

Cmdlet ini tidak berfungsi di Linux atau macOS.

Cmdlet Wait-Process menunggu satu atau beberapa proses yang berjalan dihentikan sebelum menerima input. Di konsol PowerShell, cmdlet ini menekan prompt perintah hingga proses dihentikan. Anda dapat menentukan proses berdasarkan nama proses atau ID proses (PID), atau menyalurkan objek proses ke Wait-Process.

Wait-Process hanya berfungsi pada proses yang berjalan di komputer lokal.

Contoh

Contoh 1: Hentikan proses dan tunggu

Contoh ini menghentikan proses Notepad dan kemudian menunggu proses dihentikan sebelum berlanjut dengan perintah berikutnya.

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

Get-Process Cmdlet mendapatkan ID proses dari proses Notepad dan menyimpannya dalam $nid variabel . Stop-Process menghentikan proses dengan ID yang disimpan di $nid. Wait-Process menunggu hingga proses Notepad dihentikan.

Contoh 2: Menentukan proses

Contoh ini menunjukkan tiga metode yang berbeda untuk menentukan proses ke Wait-Process. Perintah pertama mendapatkan proses Notepad dan menyimpannya dalam $p variabel . Perintah kedua menggunakan parameter Id , perintah ketiga menggunakan parameter Nama , dan perintah keempat menggunakan parameter InputObject .

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

Perintah ini memiliki hasil yang sama dan dapat digunakan secara bergantian.

Contoh 3: Tunggu proses untuk waktu yang ditentukan

Dalam contoh ini, Wait-Process tunggu 30 detik hingga proses Outlook dan Winword berhenti. Jika kedua proses tidak dihentikan, cmdlet menampilkan kesalahan yang tidak mengakhiri proses dan prompt perintah.

Wait-Process -Name outlook, winword -Timeout 30

Parameter

-Id

Menentukan ID proses proses. Untuk menentukan beberapa ID, gunakan koma untuk memisahkan ID. Untuk menemukan PID proses, ketik Get-Process.

Type:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Menentukan proses dengan mengirimkan objek proses. Masukkan variabel yang berisi objek proses, atau ketik perintah atau ekspresi yang mendapatkan objek proses, seperti Get-Process cmdlet .

Type:Process[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Name

Menentukan nama proses. Untuk menentukan beberapa nama, gunakan koma untuk memisahkan nama. Karakter kartubebas tidak didukung.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Timeout

Menentukan waktu maksimum, dalam detik, bahwa cmdlet ini menunggu proses yang ditentukan berhenti. Ketika interval ini kedaluwarsa, perintah menampilkan kesalahan yang tidak mengakhiri proses yang mencantumkan proses yang masih berjalan, dan mengakhiri penantian. Secara default, tidak ada waktu habis.

Type:Int32
Aliases:TimeoutSec
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Input

Process

Anda dapat menyalurkan objek proses ke cmdlet ini.

Output

None

Cmdlet ini tidak menghasilkan output apa pun.

Catatan

  • Cmdlet ini menggunakan metode WaitForExit dari kelas System.Diagnostics.Process .

  • Tidak seperti Start-Process -Wait, Wait-Process hanya menunggu proses yang diidentifikasi. Start-Process -Wait menunggu pohon proses (proses dan semua turunannya) keluar sebelum mengembalikan kontrol.