Ожидает остановки процессов, прежде чем принимать следующий ввод.
Синтаксис
Wait-Process [-Id] <Int32[]> [[-Timeout] <int>] [<CommonParameters>] Wait-Process -InputObject <Process[]> [[-Timeout] <int>] [<CommonParameters>] Wait-Process [-Name] <string[]> [[-Timeout] <int>] [<CommonParameters>]
Описание
Командлет Wait-Process ожидает остановки одного или нескольких выполняющихся процессов, прежде чем принимать следующий ввод. Этот командлет отключает командную строку консоли Windows PowerShell до тех пор, пока процессы не будут остановлены. Процесс можно задать с помощью его имени или идентификатора (PID). Также можно передать объект процесса командлету Wait-Process по конвейеру.
Командлет Wait-Process работает только с процессами, выполняющимися на локальном компьютере.
Параметры
-Id <Int32[]>
Задает идентификаторы процессов. При вводе нескольких идентификаторов необходимо разделять их запятыми. Чтобы определить идентификатор процесса, введите команду Get-Process. Имя параметра ("Id") указывать необязательно.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-InputObject <Process[]>
Задает процессы путем передачи объектов процессов. Введите переменную, содержащую объекты-процессы, либо команду или выражение, получающие объекты процессов, например Get-Process.
Обязательно? |
true |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
-Name <string[]>
Задает имена процессов. При вводе нескольких имен необходимо разделять их запятыми.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Timeout <int>
Определяет максимальное время (в секундах), в течение которого командлет Wait-Process ожидает остановки указанных процессов. По истечении этого времени команда выводит непрерывающую ошибку с перечнем процессов, которые еще выполняются, и завершает ожидание.
Обязательно? |
false |
Позиция? |
2 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Diagnostics.Process Объект процесса можно передать командлету Wait-Process по конвейеру. |
Выходные данные |
Нет Этот командлет не формирует никаких выходных данных. |
Примечания
В этом командлете используется метод WaitForExit класса System.Diagnostics.Process. Дополнительные сведения об этом методе см. в документации пакета SDK Microsoft .NET Framework.
Пример 1
C:\PS>$nid = (get-process notepad).id C:\PS> stop-process -id $nid C:\PS> wait-process -id $nid Описание ----------- Приведенные команды останавливают процесс Notepad и затем ожидают, пока процесс остановится, прежде чем переходить к выполнению следующей команды. Первая команда с помощью командлета Get-Process получает идентификатор процесса Notepad. Идентификатор сохраняется в переменной $nid. Вторая команда с помощью командлета Stop-Process останавливает процесс с идентификатором, сохраненным в переменной $nid. Третья команда использует командлет Wait-Process для ожидания остановки процесса Notepad. Для идентификации процесса используется параметр ID командлета Wait-Process.
Пример 2
C:\PS>$p = get-process notepad C:\PS> wait-process -id $p.id C:\PS> wait-process -name notepad C:\PS> wait-process -inputobject $p Описание ----------- На примере приведенных команд показаны три различных способа задания процесса для командлета Wait-Process. Первая команда получает процесс Notepad и сохраняет его в переменной $p. Во второй команде используется параметр ID, в третьей — параметр Name, а в четвертой — параметр InputObject. Эти команды возвращают одинаковые результаты, и их можно использовать на равных основаниях.
Пример 3
C:\PS>wait-process -name outlook, winword -timeout 30 Описание ----------- Эта команда ожидает остановки процессов Outlook and Winword в течение 30 секунд. Если ни один из процессов не будет остановлен в течение этого времени, командлет отобразит непрерывающую ошибку и командную строку.