Powershell забывает устанавливать ERRORLEVEL на ошибки парсера? - PullRequest
7 голосов
/ 15 декабря 2011

В командной строке попробуйте следующее:

powershell aaa

echo ErrorLevel -% errorlevel%

Powershell fail (с ошибкой).Вы также увидите « ErrorLevel is 1 ».Это потому, что он запускает aaa как скрипт, который делает необработанную ошибку, которая устанавливает уровень ошибки.

Однако, теперь попробуйте это:

powershell '

echo ErrorLevel -% errorlevel%

Powershell не удастся (с ошибкой).На этот раз вы также увидите " ErrorLevel = 0 " .

Я понимаю, что это другая проблема.Powershell даже скажет, что это ParserError , и это потому, что я облажался с аргументами командной строки.Тем не менее, это не круто .

Мне неясно, почему он так себя ведет.Я предполагаю, что это был недосмотр.Другие программы игнорируют установку errorlevel при сбоях, но в этом случае они как бы идут наполовину.Он даже устанавливает здесь 0 , в отличие от того, чтобы вообще не устанавливать его.

1 Ответ

1 голос
/ 16 декабря 2011

Хм Я думаю, что я согласен, что ошибка синтаксического анализа должна установить код возврата на ноль.Я предлагаю заполнить это на сайте подключения Powershell.http://connect.microsoft.com/PowerShell

...