我做了一个批处理文件,然后设置环境变量,我用Python脚本调用它, 但我看不清最后的数值。在
我需要一条Python指令或其他东西,它会给我带来最后一个值,或者刷新这些值。在
setx PCL_INC %cd%\PCL\PCL-1.6.0\include\pcl-1.6
Python
os.system("F:\\Labeleditor\\build-toolset\\scripts\\setenv_VS2008_64bit_leV4")
self.gui.lineEdit_2.setText(os.environ['PCL_INC'])
我没有得到变量PCL\u INC的“PCL\PCL-1.6.0\include\PCL-1.6”
我得到了旧的价值 `在
每次启动新进程时,Windows都会为新进程(子进程)复制启动进程(父进程)的环境表。子进程(在您的案例中是批处理文件)可以修改其环境表。并且由这个子进程启动的所有进程都会得到当前表的副本。但是不可能从子进程操作父进程的环境表。这是不可能的。在
若您的批处理文件(子进程)修改了环境变量,并且您希望它们的值出现在Python脚本(父进程)中,则在批处理文件的末尾需要
它将所有环境变量及其值打印到临时文件目录中的文件
EnvValues.tmp
。然后,只要批处理文件没有修改环境变量TEMP的值,就可以从Python脚本中加载该文件并提取所需的环境值。在如果Python脚本捕获写入
stdout
的批处理文件的所有输出,则可以使用set
。在最后,如果您只对一些环境变量感兴趣,您还可以在批处理文件中使用
echo
来输出从stdout
捕获的或重定向到临时文件的值,该文件在批处理文件终止后由Python脚本读入。在示例:
将变量的名称和值以等号作为分隔符写入文件:
^{pr2}$只将值写入文件:
将变量的名称和值以空格作为分隔符写入
stdout
:读入批处理文件输出的数据后,不要忘记用Python脚本删除临时文件。在
相关问题 更多 >
编程相关推荐