Determinare se un comando Powershell ha avuto successo
-
09-10-2019 - |
Domanda
Ciao io sono abbastanza nuovo per Powershell ma ho dubbio uno insignificante. Voglio essere in grado di dire se un comando ha completato con successo in modo da poter dare messaggi significativi di host.
Sto usando il comando appcmd
per aggiungere un binding in IIS. In sostanza, che va come segue:
./appcmd set site /site.name:........................
Ma come posso fare un controllo per assicurarsi che ha avuto successo o no?
Credo che se ho appena messo Write-Host "Successfully added binding"
dopo quella dichiarazione che sparerà dopo prescindere se la appcmd
ha avuto successo.
Sto indovinando che ho bisogno di fare qualcosa di simile:
$successful = ./appcmd set site /site.name:........................
ma poi $successful
sembra essere una stringa contenente il risultato msg?
Grateful qualsiasi aiuto su questo! Acclamazioni
Soluzione
Supponendo appcmd è un exe console, anche se gli errori, la prossima riga dello script verrà eseguito.
Se si desidera verificare se il file EXE errored e il file EXE utilizza il codice 0 di uscita standard per indicare il successo, poi basta controllare la variabile speciale $?
destra dopo aver chiamato il file EXE. Se è $ true, quindi il file EXE ha restituito un codice di uscita 0.
Se il file EXE è non standard in termini di codice di uscita restituisce per il successo (forse ha più codici di successo) quindi ispezionare $LastExitCode
per ottenere il codice esatto di uscita dell'ultimo EXE restituito.