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


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 . Вторая команда использует параметр Id, третья команда использует параметр Name, а четвертая команда использует параметр InputObject.

$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p

Эти команды приводят к одинаковому результату и могут быть взаимозаменяемыми.

Пример 3. Ожидание процессов в течение указанного времени

В этом примере Wait-Process ожидается 30 секунд для остановки процессов 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

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

Process

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

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

None

По умолчанию этот командлет не возвращает выходные данные.

Process

Командлет возвращает объекты процесса при использовании параметра PassThru .

Примечания

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

  • В отличие от Start-Process -Waitэтого, Wait-Process ожидается только определяемые процессы. Start-Process -Wait Ожидает выхода дерева процесса (процесса и всех его потомков) перед возвратом элемента управления.