注册表设置win环境变量
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator][/d Data] [/f]
KeyName [\\Machine\]FullKey
/v
/ve
/t
/s
/d
/f
例如:
REG ADD \\ABC\HKLM\Software\MyCo
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /dfe340ead
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /dfax\0mail
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d%%systemroot%%
添加系统环境变量visual 值为vim, 不过加了之后在命令行用set还是看不到,需要注销一下或者重启动explorer进程。
reg add "hklm\system\currentcontrolset\control\sessionmanager\environment" /v visual /t REG_SZ /d vim
导出环境变量到env.reg
reg export "hklm\system\currentcontrolset\control\sessionmanager\environment" env.reg
显示注册表系统环境变量:
reg query "hklm\system\currentcontrolset\control\sessionmanager\environment"
使用VBS
或使用使用REGdim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
wsh.Environment("system").Item("<变量名>")="<值>"
将上面的<>内容替成你需要定义的名称和值就可以了.setregpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment
::系统环境变量
::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment
::用户环境变量
::HKEY_CURRENT_USER\Environment
reg add "%regpath%" /v "<name>" /d"<data>"
来源:www.phpvim.net/windows/change-system-environment-variables-with-registry-for-windows-xp.html
大部分情况下我们都是通过Windows自带的环境变量编辑器来修改系统环境变量,也可以通过Windows系统提供的path,set两个命令临时修改。
使用系统编辑器修改环境变量最终会反映到注册表中保存,我们知道环境变量分为两种,用户变量,以及系统变量,其存储的位置分别位于:
系统变量:
[HKLM\SYSTEM\ControlSet001\Control\SessionManager\Environment]
[HKLM\SYSTEM\ControlSet002\Control\SessionManager\Environment]
[HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\Environment]
用户变量:
[HKCU\Environment]
其中HKLM = HKEY_LOCAL_MACHINE,HKCU = HKEY_CURRENT_USER
ControlSet001/ControlSet002/CurrentControlSet保存用于系统启动的重要配置信息,其中CurrentControlSet指向ControlSet001,两者互相同步,每次针对两者中任意一个分支的修改都会立即复制到另外一个分支相对应的键值中。
当系统启动时,会使用其中一个分支的信息以尝试启动系统,这个就是ControlSet001,如果启动成功,那么ControlSet001的信息会复制到ControlSet002中。如果启动失败,那么就不会发生这个复制过程。
当系统因某些原因无法启动时,我们通常会使用“Using the Last Known GoodConfiguration”来尝试启动系统,也就是“最后一次正确的配置”(启动时按住F8),这时系统使用的就是ControlSet002分支的配置信息。