通过批处理文件传播环境变量?

时间:2011-01-12 17:40:22

标签: visual-studio-2008 windows-7 batch-file environment-variables

我正在通过批处理文件设置一些永久环境变量。是否可以在不通过批处理文件注销的情况下传播它们?我见过this reference但想知道是否可以通过批处理文件。

目前,当我设置环境变量(使用Visual Studio关闭)并启动Visual Studio时,无法识别新的环境变量,并且无法编译给定项目(取决于变量)。如果我注销然后重新登录,他们就是。如果我希望批处理文件检测变量是否存在以及是否存在,则不会这样做。

除非我注销/打开,否则当批处理文件设置环境变量时,执行其工作并关闭,如果我重新运行它,它将再次设置该变量(未能检测到它已存在)。如果我注销/打开,则批处理文件会检测变量(并通知用户),Visual Studio会编译给定项目而不会出错。

1 个答案:

答案 0 :(得分:1)

不确定我是否可以遵循这一点。环境变量值仅从启动新进程的进程继承。在.bat或.cmd文件中设置它们时,您正在改变执行批处理文件的cmd.exe进程的变量值。

如果您从相同的 cmd.exe会话启动devenv.exe,那么Visual Studio也将具有这些已更改/添加的环境变量。

的工作原理是从资源管理器启动Visual Studio。当你登录时,它就开始了。它已经初始化了系统环境。您可以使用“控制面板+系统”小程序进行修改。高级,环境变量按钮。要使更改在此处有效,您必须重新启动一个过程,以便使用这些更改的设置进行初始化。

这实际上意味着您必须重新启动资源管理器。是的,退出就是这样。