Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6319781
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类: 系统运维

2016-04-27 03:43:15

原文地址:win通过dos配置注册列表 作者:sxauzx

      由于服务器数量众多,需求是配置环境变量,为了不被累屎,为了减轻压力所以有了这篇文章!嘿嘿……
需求如图:
       百度后了解到通过dos中的set指令配置后只可以临时生效,命令行终端关闭后即失效!如果要一直有效唯一可行的就是用注册列表或者我们经常用的手动配置了(宝宝心里苦,但宝宝不说~~~~(>_<)~~~~ )
1、注册表设置win环境变量格式:
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey   #远程机器的机器名  -忽略默认到当前机器
/v 所选项之下要添加的值名
/ve  为注册表项添加空白值名<无名称>
/t   RegKey 数据类型
[ REG_SZ    | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN    |  REG_DWORD | REG_BINARY    | REG_DWORD_LITTLE_ENDIAN |  REG_NONE | REG_EXPAND_SZ ] 
注意:如果忽略,则采用 REG_SZ
/s   指定一个在 REG_MULTI_SZ 数据字符串中
/d   要分配给添加的注册表 ValueName 的数据  用作分隔符的字符  如果忽略,则将 "\0" 用作分隔符
/f    不用提示就强行改写现有注册表项
eg:
1)REG ADD \\ABC\\HKLM\Software\MyCo   #添加远程机器ABC上的一个注册表项 HKLM\Software\MyCo
2)REG ADD HKLM\Software\MyCo /v Data /t  REG_BINARY /d fe340ead  #添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
3)REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail  #添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\0mail\0\0)
4)REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%  #添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用双百分比符号( %% )
2、常用命令:
导出环境变量到env.reg:
reg export "hklm\system\currentcontrolset\control\session manager\environment" env.reg
显示注册表系统环境变量:
reg query "hklm\system\currentcontrolset\control\session manager\environment"
使用使用REG:
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
::系统环境变量
::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
::用户环境变量
::HKEY_CURRENT_USER\Environment
reg add "%regpath%" /v "" /d ""
将上面的<>内容替成你需要定义的名称和值就可以了.
注意“::”这个符号是dos命令中的注释内容
3、使用系统编辑器修改环境变量最终会反映到注册表中保存,我们知道环境变量分为两种,用户变量,以及系统变量,其存储的位置分别位于:
系统变量:
[HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment]
[HKLM\SYSTEM\ControlSet002\Control\Session Manager\Environment]
[HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
用户变量:
[HKCU\Environment]
其中HKLM = HKEY_LOCAL_MACHINE,HKCU = HKEY_CURRENT_USER
注意问题:
ControlSet001/ControlSet002/CurrentControlSet保存用于系统启动的重要配置信息,其中 CurrentControlSet指向ControlSet001,两者互相同步,每次针对两者中任意一个分支的修改都会立即复制到另外一个分支相对应 的键值中。
当系统启动时,会使用其中一个分支的信息以尝试启动系统,这个就是ControlSet001,如果启动成功,那么ControlSet001的信息会复制到ControlSet002中。如果启动失败,那么就不会发生这个复制过程。
当系统因某些原因无法启动时,我们通常会使用“Using the Last Known Good Configuration”来尝试启动系统,也就是“最后一次正确的配置”(启动时按住F8),这时系统使用的就是ControlSet002分支的配置信息。
4、解决问题:
在newhua.bat文本文件中编辑如下内容:
set regpath=hkey_local_machine\system\currentcontrolset\control\session manager\environment
::
echo.
echo =================================
echo 环境变量设置
echo =================================
echo.
set /p en=请按 回车键 确认设置开始!
echo.
::
set huajun_home=D:\newhua   #设置当前命令行的变量,关闭后即失效
echo 新创建环境变量 huajun_home=D:\newhua
reg add "%regpath%" /v "huajun_home" /d "D:\newhua" /f
echo.
color 17  
echo ************ jdk系统环境变量设置 结束! ***********  
echo.  
echo 请按 任意键 退出! 
双击运行该批处理文件即可完成环境变量的配置!
3、检查结果:
1)我的电脑右击点选“属性”
2)选择“高级”选项卡,再点击下方的“环境变量”
3)查看系统变量
问题是推动我们学习的动力,下一个问题走起……
阅读(1173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~