Ciao, sono abbastanza nuovo per PowerShell ma ho una domanda insignificante. Voglio essere in grado di dire se un comando è stato completato correttamente in modo da poter dare messaggi significativi all'host.Determinare se un comando PowerShell ha avuto esito positivo
Sto utilizzando il comando appcmd
per aggiungere un'associazione 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?
Penso che se metto appena Write-Host "Successfully added binding"
dopo quell'istruzione, verrà attivato dopo indipendentemente dal fatto che lo appcmd
abbia avuto esito positivo.
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?
Grato aiuto su questo! Cheers
grazie per la risposta. Quindi sto assumendo che '$?' E '$ LastExitCode' siano relativi? Supponiamo che io esegua questo (o un altro) cmd in tutto lo script - quelle vars sono relative all'ultimo comando che è stato eseguito? – baron
Esattamente. '$?' si applica a tutti i comandi di esecuzione. Indica il successo per il precedente comando più. Si noti che gli errori non terminanti (idontexist Get-ChildItem) continuano a restituire true. Se un comando genera un errore di terminazione, allora '$?' Restituisce $ false. Se necessario, è possibile forzare un comando per convertire un errore non terminante in un errore di terminazione utilizzando il parametro ubiquitario '-ErrorAction Stop'. '$ LastExitCode' contiene il codice di uscita per l'EXE eseguito più recentemente. –