【问题标题】:Why does this command fail to print the correct exit code of a Python command?为什么此命令无法打印 Python 命令的正确退出代码?
【发布时间】:2014-07-13 09:57:43
【问题描述】:

在 cmd.exe 窗口中,当我运行 python -c "exit(12)" 然后运行 ​​echo %errorlevel% 时,它会打印 12。之后,当我运行python -c "exit(13)" & echo %errorlevel% 时,它会打印出12

为什么第二个命令无法打印正确的退出代码?

【问题讨论】:

  • 两个命令都在同一个环境上下文中运行。如果您不使用& 运算符并按顺序运行它们,它将产生预期值。 Python 在这里无关紧要。
  • @BartoszKP 实际上我需要使用 Python,因为我正在尝试解决 this problem.
  • 这与 想要解决的问题无关。在 this question 中,Python 无关紧要,因为它只涉及 cmd 的工作方式。虽然我不想编辑它,因为它看起来太多了,但如果你把它做得更笼统,这个问题对其他人会更有帮助。

标签: python windows python-2.7 exit-code errorlevel


【解决方案1】:

%errorlevel% 的替换发生在您运行命令时。它反映了当您按下“输入”键时 %errorlevel% 的值。

例如考虑:

> set foo=foo

> echo %foo%
foo

> set foo=bar & echo %foo%
foo

> echo %foo%
bar

您可以像这样检查错误级别:

> python -c 'exit(13)' & if errorlevel 13 echo "its 13"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2021-07-09
    • 2016-01-22
    相关资源
    最近更新 更多