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
для ожидания завершения процесса Блокнота. Он использует параметр 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
Эта команда 30 секунд ожидает окончания процессов Outlook и Winword. Если оба процесса не остановлены, командлет отображает непрерывающую ошибку и командную строку.
Параметры
-Id
Указывает идентификаторы процессов. При указании нескольких идентификаторов разделяйте их запятыми.
Чтобы найти ИДЕНТИФИКАТОР процесса, введите Get-Process
.
Тип: | Int32[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-InputObject
Указывает процессы с помощью отправки объектов процессов. Введите переменную, содержащую объекты процесса, или введите команду или выражение, которое получает объекты процесса, например Get-Process
командлет.
Тип: | Process[] |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Указывает имя процессов. При указании нескольких имен разделяйте их запятыми. Подстановочные знаки не поддерживаются.
Тип: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Timeout
Указывает максимальное время в секундах, которое этот командлет ожидает остановки указанных процессов. По истечении указанного времени команда отображает не прерывающую ошибку со списком еще выполняющихся процессов и завершает ожидание. По умолчанию время ожидания отсутствует.
Тип: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Объект процесса можно передать в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
Этот командлет использует метод WaitForExit класса System.Diagnostics.Process.
В отличие от
Start-Process -Wait
этого,Wait-Process
ожидается только определяемые процессы.Start-Process -Wait
Ожидает выхода дерева процесса (процесса и всех его потомков) перед возвратом элемента управления.
Связанные ссылки
PowerShell