Powershell está devolviendo un código de salida 0, cuando se produjo un error, si se invocó con el argumento -File. Lo que significa que mi construcción es de color verde cuando no debería ser :(¿Cómo puedo obtener que PowerShell devuelva el código de salida correcto cuando se lo llama con el argumento -File?
Por ejemplo:
(en wtf.ps1)
$ErrorActionPreference = "Stop";
$null.split()
(cmd)
powershell -file c:\wtf.ps1
You cannot call a method on a null-valued expression.
At C:\wtf.ps1:3 char:12
+ $null.split <<<<()
+ CategoryInfo : InvalidOperation: (split:String) [], ParentConta
insErrorRecordException
+ FullyQualifiedErrorId : InvokeMethodOnNull
echo %errorlevel%
0
powershell c:\wtf.ps1
You cannot call a method on a null-valued expression.
At C:\wtf.ps1:3 char:12
+ $null.split <<<<()
+ CategoryInfo : InvalidOperation: (split:String) [], ParentConta
insErrorRecordException
+ FullyQualifiedErrorId : InvokeMethodOnNull
echo %errorlevel%
1
Todas las ideas ?
(He intentado casi todas las ideas de las primeras 2 páginas de esto: https://www.google.co.uk/search?q=powershell+file+argument+exit+code ya)
Si se trata de un error de terminación, la salida no se llama a :(Y, aunque lo intento/captura y salida> 0, si yo lo llamo con -File pierdo el código de salida. – grahamrhay
Funcionó para mí , actualicé mi respuesta con el código de muestra. –
Hmm, tu ejemplo funciona para mí. Y, sin embargo, mi construcción aún está verde. Veré si puedo averiguar qué es diferente. – grahamrhay