如何设置对当前会话生效的 Windows 用户环境变量?

如何设置对当前会话生效的 Windows 用户环境变量?

我正在尝试设置 Windows 用户环境变量,然后通过批处理文件或脚本启动应用程序。但是,直到用户注销并重新登录后,环境变量才会设置为适当的值。(我认为更准确的描述是,直到下次登录后,应用程序才能使用新值。)

有没有办法在用户环境中设置变量以使其立即可用?

我这样做是因为这个程序的功能可以通过环境变量控制,并且用户在不同时间需要不同的功能。由于许可证限制,如果可能的话,我需要动态设置它。

谢谢,

格雷厄姆

答案1

最简单的方法是根本不设置环境变量,而是从设置该会话的环境变量的批处理文件运行应用程序。只有当变量存在时,它才会在下次登录前生效

答案2

您实际上在哪里设置变量?如果您在系统属性中设置它,它只会影响新的 shell 会话,而不会影响现有的会话……但实际上不需要注销/登录。

最好的选择是在启动应用程序的同一个批处理文件中设置变量。

答案3

如果您的用户是机器的管理员,那么您可以将所需的值合并到注册表中。然后运行批处理文件。

这将添加环境变量 MYENVIRON,其值为 MYVALUE

reg 添加“HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment”/v MYENVIRON /t REG_SZ /d MYVALUE /f

相关内容