如何在Python中读取%ERRORLEVEL%环境变量

3
我需要在我的Python脚本中读取(并最终更改)%ERRORLEVEL%,但os.environ中不包含它。是否有一种从其他地方读取它的方法?

你明白百分号不是变量名的一部分吗?它们是cmd.exe语法,用于在百分号之间替换变量名的值。在类似bash的UNIX shell中,等效的命令是echo $ERRORLEVEL。因此,在程序中,你应该使用ERRORLEVEL - Kurtis Rader
@KurtisRader 谢谢你的信息,我之前不知道。但是在我的程序中,我一直在使用ERRORLEVEL,但它没有起作用。 - retardquestions
2个回答

3

如果您设置系统变量并使用引用方式调用,那么它对我来说很好用。

os.environ["VARIABLE_NAME"]

请看下面:

enter image description here

在终端内:

C:\Users\ak47>echo %ERRORLEVEL%
true

C:\Users\ak47>python
Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import os
>>> os.environ["ERRORLEVEL"]
'true'
>>>

ERRORLEVEL是我系统(Windows)中的现有变量。 我可以使用命令行读取它,但是Python似乎无法看到它。 - retardquestions

1

%ERRORLEVEL%可以让我们了解在CMD中执行的命令是否成功执行。

比如说,我有一个Python文件。

import os
elevel = os.system("cd")
print(elevel)

在这里,os.system("cd")将给出当前目录路径,elevel将为0(0表示执行命令时没有错误)。

而且,

import os
elevel = os.system("c")
print(elevel)

在这里,os.system("c") 的输出将会是 'c' 不是内部或外部命令。elevel 值将为1(1 表示执行命令时出现了一些错误)。
但是,我不确定你是否可以设置 %errorlevel%。也许你可以在 Python 中抛出异常,这将使错误级别变为 1。或者采用类似的方式使其为 1。
编辑:
来自 Python 中 exit(0) 和 exit(1) 的区别 我发现我们可以使用 exit(1) 来退出 Python,并表示出错,这意味着在 CMD 中 %errorlevel% 将被设置为 1。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接