如何在python脚本中使用值来设置环境变量

如何在python脚本中使用值来设置环境变量,python,batch-file,environment-variables,Python,Batch File,Environment Variables,我有下面的问题设置一个环境变量,看看其他的例子,一个成功了 1.我在python脚本的变量“version”中有一个值。 2.现在,我需要将此设置为windows中BUILD\u VER的环境变量(目前它在windows中,更倾向于使其在操作系统中通用),通常在批处理文件中设置一个简单的BUILD\u VER=%version%就可以了(此环境变量由另一个批处理文件使用,该文件生成了一个软件版本,我猜在这里是不相关的) 现在,来关注这个问题 有没有办法在同一个python脚本中设置BUILD\u

我有下面的问题设置一个环境变量,看看其他的例子,一个成功了

1.我在python脚本的变量“version”中有一个值。 2.现在,我需要将此设置为windows中BUILD\u VER的环境变量(目前它在windows中,更倾向于使其在操作系统中通用),通常在批处理文件中设置一个简单的BUILD\u VER=%version%就可以了(此环境变量由另一个批处理文件使用,该文件生成了一个软件版本,我猜在这里是不相关的)

现在,来关注这个问题

有没有办法在同一个python脚本中设置BUILD\u VER=VERSION并将其传递到批处理文件中?还有其他想法吗?我在批处理文件中尝试了以下方法,但不确定python脚本是否正在运行?运行以下命令不会输出任何内容

@echo off
FOR /F %v IN ('build_ver.py 123637') DO SET BUILD_VER=%v

您尚未明确指定几个批处理文件和python脚本之间的相互关系,因此让我们分析一些可能性:

  • python脚本定义变量,执行一个设置相同变量的批处理文件,然后python脚本自行继续,并执行您希望能够访问第一个批处理文件中定义的变量的其他批处理文件。这是不可能的。句号

  • python脚本定义变量,执行设置相同变量的批处理文件,然后批处理文件继续并执行继承该变量的其他批处理文件。完全正确。在本例中,python脚本仅用于定义变量并启动第一个批处理文件

  • 第一个批处理文件开始执行,执行python脚本以获取变量的值,定义变量并执行继承变量的其他批处理文件。这是最简单的解决办法;在本例中,python脚本仅用于获取变量的值

实现最后一个解决方案的方法如示例所示:

@echo off
rem Execute python script passing to it the first parameter of this Batch file
FOR /F %%v IN ('build_ver.py %1') DO SET BUILD_VER=%%v
echo Value defined by python script: %BUILD_VER%

rem Call another Batch file that inherits this variable:
call AnotherBatch.bat

请注意,在您的代码中,您在FOR/F命令中遗漏了几个百分号…

可能的重复可能会有所帮助:@alfasin-请解锁它,我查看了问题,这不起作用,请在跳到之前再读一遍conclusions@alfasin-你能重新打开它吗?关闭它指向某个不起作用的链接如果你想让它跨平台,那么,没有代码会起作用。linux环境变量不能在父进程中设置的正确答案早就给出了。。。我对Windows不太清楚。也许标记为windows并稍微更改标题?是否有办法将123637的选项传递给批处理文件,而inturn是build_ver.py的选项?@Aacini如何在python脚本中定义此值?