Ho bisogno di eseguire uno script con PowerShell -Command "& scriptname", e mi piacerebbe molto se il codice di uscita che ho ricevuto da PowerShell fosse lo stesso di il codice di uscita restituito dallo script stesso. Purtroppo, PowerShell restituisce 0 se lo script restituisce 0 e 1 se lo script restituisce qualsiasi valore diverso da zero come illustrato di seguito:-il codice di uscita del comando non è uguale al codice di uscita di uno script
PS C:\test> cat foo.ps1
exit 42
PS C:\test> ./foo.ps1
PS C:\test> echo $lastexitcode
42
PS C:\test> powershell -Command "exit 42"
PS C:\test> echo $lastexitcode
42
PS C:\test> powershell -Command "& ./foo.ps1"
PS C:\test> echo $lastexitcode
1
PS C:\test>
Usando [Ambiente] :: Exit (42) funziona quasi:
PS C:\test> cat .\baz.ps1
[Environment]::Exit(42)
PS C:\test> powershell -Command "& ./baz.ps1"
PS C:\test> echo $lastexitcode
42
PS C:\test>
Tranne che quando lo script viene eseguito in modo interattivo, esce dall'intera shell. Eventuali suggerimenti?
Penso che tu voglia uscire con 'exit $ lastexitcode' nel tuo script' -command' – ProfessionalAmateur