在命令提示符下,试试这个:
电源外壳aaa
echo ErrorLevel 是 %errorlevel%
Powershell 将失败(出现错误)。您还将看到“ ErrorLevel 为 1 ”。这是因为它将aaa作为脚本运行,这会产生未处理的错误,从而设置错误级别。
但是,现在试试这个:
电源外壳 '
echo ErrorLevel 是 %errorlevel%
Powershell 将失败(出现错误)。这一次,您还会看到“ ErrorLevel is 0 ”。
我意识到这是一个不同的问题。Powershell 甚至会说它是ParserError,这是因为我搞砸了命令行参数。不过,这并不酷。
我不清楚它为什么会这样。我猜这是一个疏忽。那里的其他程序忽略了在失败时设置错误级别,但在这种情况下,就好像他们走了一半。它甚至在这里将其设置为 0,而不是根本不设置它。