环境variables在registry中存储在哪里?

我需要远程访问一个环境variables。 要做到这一点,我认为最好的办法是从registry中读取它。

环境variables在registry中存储在哪里?

以下是通过Server 2012 R2存储在XP上的位置:

用户variables

HKEY_CURRENT_USER\Environment 

系统variables

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 

这里有一个很好的文章与其他链接:

vlaurie.com/computers2/Articles/environment.htm

我意识到这是旧的,但在Windows 7中有这样做的更有效的方法。SETX默认情况下安装,并支持连接到其他系统。

修改您将使用的远程系统全局环境variables

 setx /m /s HOSTNAME-GOES-HERE VariableNameGoesHere VariableValueGoesHere 

这不需要重新启动浏览器。

我一直有这个问题,我做了一个getx.bat:

 ::getx %envvar% [\m] ::reads envvar from user enviroment variable and stores it in getxvalue variable ::with \m read system enviroment @SETLOCAL EnableDelayedExpansion @echo OFF @set l_regpath="HKEY_CURRENT_USER\Environment" @if "\m"=="%2" set l_regpath="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" ::REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_SZ /f /d "%PATH%" ::@REG QUERY %l_regpath% /v %1 /S @FOR /F "tokens=*" %%A IN ('REG QUERY %l_regpath% /v %1 /S') DO ( @ set l_a=%%A @ if NOT "!l_a!"=="!l_a: =!" set l_line=!l_a! ) ::delimiter is four spaces change it to tab \t @set l_line=!l_line! @set l_line=%l_line: = % @set getxvalue= @FOR /F "tokens=3* delims= " %%A IN ("%l_line%") DO ( @ set getxvalue=%%A ) @set getxvalue=!getxvalue! @echo %getxvalue% > getxfile.tmp.txt @ENDLOCAL ::we already used tab as delimiter @FOR /F "delims= " %%A IN (getxfile.tmp.txt) DO ( @set getxvalue=%%A ) @del getxfile.tmp.txt @echo ON