Wait-Process
Ожидает остановки процессов перед приемом дополнительных входных данных.
Синтаксис
Name (По умолчанию)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
InputObject
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 для ожидания завершения процесса Блокнота. Он использует параметр idWait-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.
Вторая команда использует параметр идентификатора
Эти команды имеют одинаковые результаты и могут использоваться взаимозаменяемо.
Пример 3. Ожидание процессов в течение указанного времени
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Эта команда ожидает остановки процессов Outlook и Winword в течение 30 секунд. Если оба процесса не остановлены, командлет отображает неисключаемую ошибку и командную строку.
Параметры
-Id
Задает идентификаторы процессов процессов. Чтобы указать несколько идентификаторов, используйте запятые для разделения идентификаторов.
Чтобы найти ИДЕНТИФИКАТОР процесса, введите Get-Process.
Свойства параметров
| Тип: | Int32[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | ИД процесса (PID), ProcessId |
Наборы параметров
Id
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-InputObject
Задает процессы путем отправки объектов процесса. Введите переменную, содержащую объекты процесса, или введите команду или выражение, которое получает объекты процесса, например командлет Get-Process.
Свойства параметров
| Тип: | Process[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
InputObject
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Name
Задает имена процессов процессов. Чтобы указать несколько имен, используйте запятые для разделения имен. Подстановочные знаки не поддерживаются.
Свойства параметров
| Тип: | String[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Имя процесса |
Наборы параметров
Name
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Timeout
Указывает максимальное время в секундах, которое этот командлет ожидает остановки указанных процессов. По истечении этого интервала команда отображает неисключающую ошибку, которая выводит список процессов, которые по-прежнему выполняются, и завершает ожидание. По умолчанию время ожидания отсутствует.
Свойства параметров
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | TimeoutSec |
Наборы параметров
(All)
| Position: | 1 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
Process
Объект процесса можно передать в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
Этот командлет использует метод WaitForExit класса System.Diagnostics.Process.
В отличие от
Start-Process -Wait,Wait-Processожидает только определенных процессов.Start-Process -Waitожидает выхода дерева процесса (процесса и всех его потомков) перед возвратом элемента управления.