2011-01-21 3 views
19

Мне нужно вызвать внешнее приложение (т. Е. & «Блокнот») , а затем получить идентификатор процесса вызываемого приложения.PowerShell - получить идентификатор процесса вызываемого приложения

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!!" 

ответ

37

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

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

Что такое passthru? –

+2

@JohnDemetriou Он сообщает Start-Process выводить объект процесса на конвейер (т. Е. «Передавать его через конвейер») – zdan

1

лаконичнее :

# Starts Notepad and returns the ID 
(Start-Process Notepad -passthru).ID 
Смежные вопросы