2013-10-16 9 views
5

Ho un elenco di pacchetti di Windows che sto Installazione tramite PowerShell utilizzando il seguente comando:C'è un modo per far sì che PowerShell attenda il completamento dell'installazione?

& mypatch.exe /passive /norestart

mypatch.exe sta passando da un elenco e non aspetta per la prima installazione per finire - continua semplicemente. Costruisce un'enorme finestra di installazioni che sono in attesa di installazione. Inoltre, non è possibile utilizzare $LASTEXITCODE per determinare se l'installazione è riuscita o meno.

Esiste comunque la possibilità di eseguire le installazioni prima di avviare la successiva?

risposta

7
Start-Process <path to exe> -Wait 
+1

Perfetto, grazie! –

1

Certo, scrivere uno script batch a una riga che esegue l'installazione. Lo script batch attenderà il completamento dell'installazione prima di tornare. Chiama lo script di PowerShell che a sua volta attenderà il completamento dello script batch.

Se si ha accesso al modo in cui è stato scritto mypatch, è possibile creare un file casuale al termine del quale PowerShell può verificare la sua esistenza in un ciclo while e dorme mentre il file non esiste.

In caso contrario, è possibile che lo script batch crei un file fittizio al termine dell'installazione.

Un altro modo, anche se probabilmente il peggiore di tutti è quello di codificare un timer di spegnimento automatico (avvio-sonno) dopo aver chiamato l'installazione.

EDIT ha appena visto la risposta di JensG. Non lo sapevo. Nice

Problemi correlati