Finden exit-code für die Ausführung der cmd-Befehl über PowerShell
Ich bin mit einem Befehl zur automatischen installation installieren Sie die software. Ich bin der Ausführung dieses Befehls PowerShell 3.0.
$silentInstall = C:\Users\Admin\Documents\Setup-2.0.exe exe /s /v"EULAACCEPTED=\"Yes\" /l*v c:\install.log /qn"
Invoke-Expression $silentInstall
Dieser führt den Befehl aus, die die software installiert, aber es funktioniert nicht warten, bis es abgeschlossen ist, und geht weiter mit den nächsten Zeilen von code. Ich will die Kontrolle über die installation, so dass ich wissen würde, wenn es abgeschlossen ist oder nicht.
Wie bekomme ich einen Fehlercode für die Invoke-Expression cmdlet, so kann ich erfahren, ob der cmd erfolgreich ausgeführt wurde oder nicht?
Kapitel und vers auf das ausführen externer Kommandos: edgylogic.com/blog/powershell-and-external-commands-done-right
InformationsquelleAutor user3543477 | 2014-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie Sie ausgeführt, ein MSI-installer. Beim ausführen von der Konsole, die Kontrolle wird sofort zurückgegeben, während MSI-forks einen neuen Prozess, um das Installationsprogramm auszuführen. Es gibt keine Möglichkeit, dieses Verhalten zu ändern.
Was Sie wahrscheinlich tun müssen, ist
Get-Process
zu finden, ein Prozess mit dem Namenmsiexec
, und warten Sie, bis finish. Es ist immer einemsiexec
- Prozess läuft, die Griffe ab, neue Installateure, so dass Sie brauchen werden, um zu finden, diemsiexec
Prozess, der gestartet nach der Installation begann.InformationsquelleAutor Aaron Jensen
Es hängt davon ab, wie die EXE-Datei ausgeführt wird - manchmal wird es kick-off ein separater Vorgang, der sofort zurück, und in solchen Fällen dies funktioniert in der Regel -
Anders dies funktioniert in der Regel -
Oder manchmal -
Start-Process
Ansatz.+1 für die cmd.exe /c trick - das ist die einzige Sache, die gearbeitet, um den exit-code bei Ausführung VC++ installer.
InformationsquelleAutor Andy Arismendi
Müssen Sie sich nicht mit Invoke-Expression:
$?
.InformationsquelleAutor Bill_Stewart