trycatch try stop erroraction catch powershell powershell-v2.0 powershell-ise

stop - powershell use try catch



Powershell: $ LASTEXITCODE en una funciĆ³n (3)

Porque se supone que no debes configurar variables automáticas como esa. Está creando una variable local y anulándola. Elimine la línea $LASTEXITCODE = $null y obtendrá el resultado esperado. O puede hacer $global:LASTEXITCODE = $null

Hola, estoy notando un comportamiento extraño con el siguiente fragmento de código

function test { $LASTEXITCODE = $null ping asdfs Write-Host "Last exitcode: $LASTEXITCODE" } test Write-Host "Last exitcode: $LASTEXITCODE"

El resultado de esto es

Ping request could not find host asdfs. Please check the name and try again. Last exitcode: Last exitcode: 1

¿Por qué $ LASTEXITCODE no se establece dentro de la función de prueba ()?

Esto es una generalización de un problema que estoy teniendo ahora, cuando llamo a un Win32 .exe desde dentro de una función y el $ LASTEXITCODE no devuelve el valor que estoy esperando dentro de una función


Está asignando un valor a $ LASTEXITCODE dentro del alcance de la prueba de función, donde realmente está establecido. La última línea de salida enumera $ LASTEXITCODE como 1, porque abandonó el alcance de la prueba de función y el valor asignado a $ LASTEXITCODE dentro de ese alcance ya no tiene ningún interés.

Como ya mencionó Manojlds, puede establecer la variable globalmente, si desea lograr ese resultado.


No estoy seguro de que me guste configurar $ LASTEXITCODE directamente ... probablemente sea mejor dejar que el sistema interno lo haga:

cmd /c "exit 0" #Reset $LASTEXITCODE between runs while debugging