嗨,我注意到以下代码段有些奇怪的行为

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

test
Write-Host "Last exitcode: $LASTEXITCODE"

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

为什么在test()函数中未设置$ LASTEXITCODE?

这是我现在遇到的问题的一般化,当我从函数内调用Win32 .exe时,$ LASTEXITCODE没有返回函数内期望的值

最佳答案

因为您不应该这样设置自动变量。您正在创建局部变量并使其无效。删除$LASTEXITCODE = $null行,您将获得预期的结果。或者你可以做$global:LASTEXITCODE = $null

08-27 21:29