脚本调用批处理文件来设置环境变量

时间:2015-02-02 05:47:47

标签: python windows shell batch-file cmd

我需要在Windows上编写一个脚本来调用批处理文件来设置一些环境变量,然后执行一些使用这些环境变量的操作。

如果调用脚本本身是批处理文件,则可以正常工作。

能够在Python中编写调用脚本会有一些优点,但是当我尝试这样做时,批处理文件设置的环境变量在返回后不会保留。我猜这是因为subprocess.check_call(..., shell=True)产生了命令shell的新副本,当它在批处理文件的末尾死亡时,它会获取环境变量。

有没有办法让环境变量在从Python调用的批处理文件设置时保持不变,或者最好将自己重新调用自己作为批处理文件的调用脚本?

1 个答案:

答案 0 :(得分:1)

使用Setx设置变量。重新启动后,新的Cmd提示将立即启动,其他程序将立即启动。现有的不会拿起它。请使用Set

Rem Add filter.bat to the path if not in there, setx fails if it's already there

setx path %~dp0;%path% 1>nul 2>nul