Environment variables Windows注册表变量与环境变量?

Environment variables Windows注册表变量与环境变量?,environment-variables,registry,Environment Variables,Registry,乍一看,这似乎是一个纯粹的主观/美学问题,但我很想听听关于环境变量或注册表是否是Windows环境中存储配置数据的首选位置的意见(尤其是任何技术意见) 我目前只能想到以下区别: 注册表设置在会话之间是持久的,尽管我相信环境变量也可以具有此属性 从命令行设置环境变量比使用regedit (反参数:regedit对于非命令行应用更容易?) 环境变量在平台之间更为常见(?) 我还知道,可以从注册表中查询、修改和设置环境变量 当您打算由其他应用程序(或技术用户)配置时,请使用环境变量,并且此配置

乍一看,这似乎是一个纯粹的主观/美学问题,但我很想听听关于环境变量或注册表是否是Windows环境中存储配置数据的首选位置的意见(尤其是任何技术意见)

我目前只能想到以下区别:

  • 注册表设置在会话之间是持久的,尽管我相信环境变量也可以具有此属性
  • 从命令行设置环境变量比使用
    regedit
    • (反参数:
      regedit
      对于非命令行应用更容易?)
  • 环境变量在平台之间更为常见(?)

我还知道,可以从注册表中查询、修改和设置环境变量

当您打算由其他应用程序(或技术用户)配置时,请使用环境变量,并且此配置可能不同(即,您有两个实例同时运行,设置不同)。扰乱用户环境通常不是必要的。在大多数情况下,请使用注册表或存储在$HOME\AppData\Roaming\YourApp中的配置文件。

使用windows服务时,环境变量可能会很麻烦:只需更改变量,然后重新启动服务将无济于事。通常需要重新启动系统。
如果服务在注册表中查找设置,这会容易得多

我在Windows XP上看到了这种行为,我不确定更高版本是否解决了这个问题