python脚本能否持久地更改Windows环境变量?(优雅地)

2024-04-29 15:55:12 发布

您现在位置:Python中文网/ 问答频道 /正文

继我的previous question之后,是否可以生成持久更改Windows环境变量的Python脚本?

一旦python解释器终止,对os.environ的更改就不会持续。如果我是在UNIX上编写脚本,我可能会做如下操作:

set foo=`myscript.py`

但可惜的是,cmd.exe没有任何类似于sh的back tick行为的功能。我看到了一个冗长的解决方案。。。我们不一定能在这方面有所改进:

for /f "tokens=1* delims=" %%a in ('python  ..\myscript.py') do set path=%path%;%%a

微软的头脑肯定有比这更好的解决方案!

注意:完全重复this question


Tags: py脚本cmdfoooswindowsenviron环境变量
3条回答

您冗长的解决方案可能是最好的主意;我不认为这是直接从Python获得的。本文建议使用另一种方法,即使用临时批处理文件:

http://code.activestate.com/recipes/159462/

您可能需要尝试由Mark Hammond开发的Python Win32 Extensions,它包含在ActivePython中(或者可以单独安装)。您可以学习如何在Hammond's and Robinson's book中执行许多与Windows相关的任务。

使用PyWin32访问windowsCOM对象,Python程序可以使用WScript.Shell对象的Environment Property这是环境变量的集合。

Windows根据存储在注册表中的值为每个进程单独设置环境变量。

但是,Windows XP Service Pack 2 Support Tools中有一个名为setx.exe的工具,它允许您从命令行更改全局环境变量。

相关问题 更多 >