PowerShell - получить идентификатор процесса вызываемого приложения

Мне нужно вызвать внешнее приложение (т.е. & Notepad) и затем получить идентификатор процесса вызываемого приложения.

Get-Process Notepad = вернет все процессы Notepad

Я хочу сделать что-то вроде:

$objApp = & 'c:\Notepad.exe'

WHILE (get-process -ID $objApp.id | select -property Responding) {
  Start-Sleep -s 10
  Echo "STILL WAITING"
}
Echo "Done!!"

2 ответа

Решение

Использование Start-Process с -PassThru аргумент как это:

$app = Start-Process notepad -passthru
Wait-Process $app.Id

Более кратко:

# Starts Notepad and returns the ID
(Start-Process Notepad -passthru).ID
Другие вопросы по тегам