Неправильный код выхода в Python при вызове скрипта Windows

Кажется, я не получаю правильный код выхода из subprocess.call в Windows.

import subprocess
exit_code = subprocess.call(['ant.bat', 'fail'])
print exit_code # prints 0

Выполнение того же самого в Windows, похоже, возвращает что-то отличное от 0

> echo %errorlevel%
0
> ant fail
> echo %errorlevel%
1

Разве значения из обоих вызовов не должны давать одно и то же значение? Я что-то делаю не так?

Как в худшем случае проверить значение% errorlevel% в моем скрипте Python?

ОБНОВЛЕНИЕ:

Я пробовал что-то вроде этого, чтобы получить значение errorlevel:

environment = os.environment.copy()
cmd = subprocess.Popen(['ant.bat', 'fail'], env = environment)
for key, value in environment.items():
    print '%s = %s' % (key, value)

Однако я не вижу errorlevel в этом словаре (os.getenv ['errorlevel'] также не работает).

6
задан Frank Flannigan 10 July 2011 в 07:07
поделиться