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>]
Описание
Этот командлет не работает в Linux или macOS.
Командлет Wait-Process
ожидает остановки одного или нескольких запущенных процессов перед приемом входных данных. В консоли PowerShell этот командлет подавляет командную строку до тех пор, пока процессы не будут остановлены. Можно указать процесс по имени процесса или идентификатору процесса (PID) или передать объект процесса в Wait-Process
.
Wait-Process
работает только на процессах, выполняемых на локальном компьютере.
Примеры
Пример 1. Остановка процесса и ожидание
В этом примере останавливается процесс блокнота, а затем ожидает остановки процесса перед продолжением следующей команды.
$nid = (Get-Process notepad).Id
Stop-Process -Id $nid
Wait-Process -Id $nid
Командлет Get-Process
получает идентификатор процесса блокнота и сохраняет его в переменной $nid
.
Stop-Process
останавливает процесс с идентификатором, хранящимся в $nid
.
Wait-Process
ожидает завершения процесса блокнота.
Пример 2. Указание процесса
В этом примере показаны три различных метода указания процесса для Wait-Process
. Первая команда получает процесс Блокнота и сохраняет его в переменной $p
. Вторая команда использует параметр идентификатора, третья команда использует параметр Name, а четвертая команда использует параметр InputObject.
$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
Эти команды имеют одинаковые результаты и могут использоваться взаимозаменяемо.
Пример 3. Ожидание процессов в течение указанного времени
В этом примере Wait-Process
ожидает остановки Outlook и процессов Winword. Если оба процесса не остановлены, командлет отображает неисключаемую ошибку и командную строку.
Wait-Process -Name outlook, winword -Timeout 30
Параметры
-Any
При передаче нескольких процессов в Wait-Process
командлет ожидает завершения всех процессов перед возвратом. С помощью этого параметра командлет возвращается при выходе из любого процесса. Оставшиеся процессы продолжают выполняться.
Этот параметр добавлен в PowerShell 7.4.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-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 |
-PassThru
По умолчанию этот командлет не выводит ничего. С помощью этого параметра командлет возвращает объекты, представляющие процессы, ожидающие.
Этот параметр добавлен в PowerShell 7.4.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Timeout
Указывает максимальное время в секундах, которое этот командлет ожидает остановки указанных процессов. По истечении этого интервала команда отображает неисключающую ошибку, которая выводит список процессов, которые по-прежнему выполняются, и завершает ожидание. По умолчанию время ожидания отсутствует.
Тип: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Объект процесса можно передать в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
Командлет возвращает объекты обработки при использовании параметра PassThru.
Примечания
Этот командлет использует метод WaitForExit класса System.Diagnostics.Process.
В отличие от
Start-Process -Wait
,Wait-Process
ожидает только определенных процессов.Start-Process -Wait
ожидает выхода дерева процесса (процесса и всех его потомков) перед возвратом элемента управления.
Связанные ссылки
PowerShell