2011-01-21 9 views
19

Devo chiamare un'applicazione esterna (ad esempio & "Blocco note") e quindi ottenere l'ID di processo dell'applicazione chiamata.PowerShell - ottiene l'ID di processo dell'applicazione chiamata

Get-Process Notepad = restituirà tutti armadio elabora

voglio fare qualcosa di simile:

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

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

risposta

37

Utilizzare Start-Process con l'argomento -PassThru in questo modo:

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

Che cos'è passthru? –

+2

@JohnDemetriou Indica a Start-Process di inviare l'oggetto del processo sulla pipeline (ad esempio "per passarlo attraverso la pipeline") – zdan

1

più succinta :

# Starts Notepad and returns the ID 
(Start-Process Notepad -passthru).ID 
Problemi correlati