【发布时间】:2020-08-28 14:36:59
【问题描述】:
我正在尝试设置一个环境变量,我希望它可以从另一个 Windows shell(已经打开)访问:
我试过了:
os.environ['start'] = 'test'
然后在 Windows cmd 中:env.exe | findstr 'start' 什么也不返回。变量“start”不存在。
然后我尝试了:
subprocess.call(['setx.exe', 'start', 'test'])
SUCCESS: Specified value was saved
env.exe | findstr 'start' 仍然没有返回任何内容。
如何从 Windows shell 中获取此变量? 使用 Windows 10 和 python 3。 谢谢!
【问题讨论】:
-
您是否试图访问子进程中设置的环境变量(提示,您不能这样做 - 请参阅stackoverflow.com/questions/61755986/…)?或者您是否尝试将环境变量传递给子进程?您的问题需要澄清。
-
setx.exe 更新注册表中的环境并将
WM_SETTINGCHANGE“环境”消息广播到顶级窗口。这包括 Windows 外壳程序资源管理器,它从注册表重新加载其环境。它不包括控制台应用程序,例如 cmd.exe,它们不创建或拥有任何顶级窗口。
标签: python python-3.x windows environment-variables