Powershell是否忘记在解析器错误上设置ERRORLEVEL?

Joh*_*man 7 windows powershell batch-file errorlevel

在命令提示符中,试试这个:

powershell aaa

echo ErrorLevel是%errorlevel%

Powershell将失败(出错).您还会看到" ErrorLevel为1 ".这是因为它将aaa作为脚本运行,这会产生未处理的错误,从而设置errorlevel.

但是,现在试试这个:

电源外壳 '

echo ErrorLevel是%errorlevel%

Powershell将失败(出错).这次,您还会看到" ErrorLevel为0 ".

我意识到这是一个不同的问题.Powershell甚至会说它是一个ParserError,这是因为我搞砸了命令行参数.不过,这并不酷.

我不清楚它为什么会这样.我猜这是一个疏忽.其他程序忽略了对失败设置错误级别,但在这种情况下,就好像它们中途走了一样.它甚至在这里设置为0,而不是根本不设置它.

And*_*ndi 1

嗯,我想我同意解析错误应该将返回码设置为非零。我建议将其提交到 Powershell 连接站点。http://connect.microsoft.com/PowerShell