SET和SETX命令的应用

来源:互联网 发布:利用淘宝赚钱 编辑:程序博客网 时间:2024/05/18 02:58

在软件运行过程中,可能需要配置计算机的环境变量,在这里以配置Java环境变量为例讲解几种配置方式。
1.  SET命令:这种语法只能在Cmd Shell环境中有效,关闭运行环境环境变量将不保存。
例子:

[plain] view plain copy
  1. @echo off  
  2. set PATH=C:\Java\jdk1.8.0_31\bin  
  3. set /p cmd="环境变量设置完成,输入javac回车测试:"  
  4. %path%  
  5. @pause  


2. SETX命令:Window XP 以上的系统都自带了该命令(如果没有,下载一个Setx.exe),这种方式为永久设定环境变量。
设置用户环境变量 
setx path "C:\Java\jdk1.8.0_31\bin"

设置系统环境变量

setx path "C:\Java\jdk1.8.0_31\bin" /m

注意1. 
在某些情况下会出现“setx 无效语法 默认选项不能超过’2’次”的错误,据信是因为原先的环境变量中存在空格导致的,可使用双引号进行避免。
注意2.
setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。
注意3.
setx在设置变量的长度超过1024,会截取多出的字符。
注意4.
setx还可以操作远程计算机,具体参数设置百度一下setx用法。
注意5.
setx在设置某一变量的值,如果已经存在该变量会覆盖之前的值。所以正确方式是:要保存值=获取当前该变量的值+新值。
例如:set oldValue=获取当前变量值
          setx path %oldValue%;%newValue%
以下为获取用户环境变量path的值,该例子读取注册表内的值。
[plain] view plain copy
  1. @echo off  
  2. set regPath= HKEY_CURRENT_USER\Environment  
  3. set key=path  
  4. ::判断是否存在该路径  
  5. reg query %regPath% /v  %key% 1>nul 2>nul  
  6. if %ERRORLEVEL%==0 (  
  7. ::取值  
  8. For /f "tokens=3,4 delims= " %%v in ('Reg Query %regPath% /v %key% ') do Set oldValue=%%v   
  9. ) else Set oldValue=""  
  10. echo %key%的原值为:%oldValue%  
  11. pause