Поделиться через


Wait-Process

Ожидает остановки процессов, прежде чем принимать дополнительный ввод.

Синтаксис

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

Описание

Командлет Wait-Process ожидает остановки одного или нескольких запущенных процессов, прежде чем принимать входные данные. В консоли PowerShell этот командлет подавляет командную строку до остановки процессов. Можно указать процесс по имени процесса или идентификатору процесса (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

В этом примере процесс Блокнота останавливается, а затем ожидает остановки процесса, прежде чем продолжить выполнение следующей команды.

Первая команда использует Get-Process командлет для получения идентификатора процесса Блокнота. Он сохраняет идентификатор в переменной $nid .

Вторая команда использует командлет для Stop-Process остановки процесса с идентификатором, хранящимся в $nid.

Третья команда использует Wait-Process для ожидания остановки процесса Блокнота. Для идентификации Wait-Process процесса используется параметр Id .

Пример 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

Эта команда 30 секунд ожидает окончания процессов Outlook и Winword. Если оба процесса не остановлены, командлет отображает непрерывающую ошибку и командную строку.

Параметры

-Id

Указывает идентификаторы процессов. При указании нескольких идентификаторов разделяйте их запятыми. Чтобы найти ИДЕНТИФИКАТОР процесса, введите Get-Process.

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

-InputObject

Указывает процессы с помощью отправки объектов процессов. Введите переменную, содержащую объекты процесса, или введите команду или выражение, которое получает объекты процесса, например Get-Process командлет .

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

-Name

Указывает имя процессов. При указании нескольких имен разделяйте их запятыми. Подстановочные знаки не поддерживаются.

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

-Timeout

Указывает максимальное время (в секундах), в течение которой этот командлет ожидает остановки указанных процессов. По истечении указанного времени команда отображает не прерывающую ошибку со списком еще выполняющихся процессов и завершает ожидание. По умолчанию время ожидания отсутствует.

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

Входные данные

Process

Объект процесса можно передать в этот командлет.

Выходные данные

None

Этот командлет не формирует никаких выходных данных.

Примечания

Командлет поддерживается только на платформах Windows.

Этот командлет использует метод WaitForExit класса System.Diagnostics.Process .