批处理设置环境变量

时间:2022-12-12 10:14:27

CreateTime--2017年8月4日11:28:11
Author:Marydon

参考链接:https://wenku.baidu.com/view/ae132fa103d276a20029bd64783e0912a2167c11.html

windows通过批处理设置环境变量

一、系统变量

  1.添加系统变量

    1.1 设置变量值为路径

    举例:设置JAVA_HOME环境变量

    方式一:变量值使用绝对路径

@echo off  
:: 设置JDK环境变量JAVA_HOME
wmic ENVIRONMENT create name
="JAVA_HOME",username="<system>",VariableValue="D:\ProgramFiles(x86)\Java\jdk1.7.0_79"
echo
%JAVA_HOME%
pause

    方式二:变量值使用相对路径

@echo off  
:: 设置JDK环境变量JAVA_HOME
wmic ENVIRONMENT create name
="JAVA_HOME",username="<system>",VariableValue="%~dp0jdk1.7.0_79"
echo
%JAVA_HOME%
pause
 

    将上面代码复制到txt文件中,路径改成你的jdk安装路径,保存后,名称随意(如:JAVA_HOME),双击运行-->win+r-->输入sysdm.cpl-->高级-->环境变量-->在系统变量中即可看到

    构成:

      name用于指定环境变量名称,username用于指定环境变量的属性:临时变量/系统变量,VariableValue用于指定环境变量所对应的值,都是固定用法

批处理设置环境变量

    区别:

    方式一对于Java程序的安装路径的要求比较高,即变量值对应的值必须与Java的安装路径完全一致,但是对于该bat文件存放在哪个位置无关;

    方式二的%~dp0表示批处理文件所在的文件夹的路径,即:D:\ProgramFiles(x86)\Java;

    方式二对于Java程序的安装路径没有要求,但是对于该bat文件存放位置有很大要求,该bat文件存放在Java文件夹下,

    所以JAVA_HOME="%~dp0jdk1.7.0_79",“%~dp0”和“jdk1.7.0_79”之间不用加“\”;

批处理设置环境变量

    如果还是不明白,请自行百度绝对路径与相对路径的区别

    1.2 设置变量值为死值

     举例:设置PLSQL的环境变量NLS_CHARACTERSET和NLS_LANG

@echo off    
:: 设置PLSQL的环境变量NLS_CHARACTERSET
wmic ENVIRONMENT create name
="NLS_CHARACTERSET",username="<system>",VariableValue="AL32UTF8"
echo
%NLS_CHARACTERSET%
:: 设置PLSQL的环境变量NLS_LANG
wmic ENVIRONMENT create name
="NLS_LANG",username="<system>",VariableValue="AMERICAN_AMERICA.AL32UTF8"
echo
%NLS_LANG%
pause

    保存成bat文件后,双击运行即可。

批处理设置环境变量

  2.删除环境变量

@echo off  
:: 删除JDK环境变量JAVA_HOME
wmic ENVIRONMENT
where name="JAVA_HOME" delete
pause

批处理设置环境变量

  3.修改环境变量

@echo off 
:: 更新环境变量JAVA_HOME的值
wmic ENVIRONMENT
where "name='JAVA_HOME' and username='<system>'" set VariableValue="test"
echo
%JAVA_HOME%
pause

批处理设置环境变量 

  注意:

    where 关键字后跟的参数必须是一个连续的字符串,如果参数字符串含有空格需要用英文双引号 " 将参数括起来;

    若字符串中有多个限定词,比如既有 name 又有 username,则需要使用 and 关键字来连接这些限定词。       

二、临时变量

  1.添加临时变量

set password=123

  将其保存成bat文件后,双击运行即可

批处理设置环境变量

  说明:临时变量只在当前窗口有效,一旦关闭,就会消失

三、结语

  1.使用 wmic 命令修改环境变量是永久性的,而使用 set 命令修改环境变量是只针对当前命令行环境的临时修改;

  2.pause-->终止命令执行,不关闭窗口(可以查看执行结果);exit-->终止命令执行并关闭执行窗口;

  3.查看环境变量通常通过DOS窗口通过set +变量名称查看;

  4.使用批处理改变环境变量,需要重启资源管理器或注销或重启后才能生效;

  5.与其配置JAVA_HOME环境变量,再将其配置到Path中,不如直接在Path添加jdk的环境(编译&运行)

  错误方式:在path最前面添加配置

@echo off 
:: 在Path最前面添加JDK环境(编译
&运行)
wmic ENVIRONMENT
where "name='path' and username='<system>'" set VariableValue="%~dp0jdk1.7.0_79\bin;%path%"
echo
%path%
pause

  打开进入命令窗口,输入set path,重启前:

批处理设置环境变量

  重启资源管理器后结果展示:

批处理设置环境变量  

  解说:

    如图所示,通过命令的方式实现在Path最前面添加内容虽然实现了,但是会添加两次,因此不推荐使用,想要实现,需要到环境变量管理中手动进行配置 

  正确方式:在path最后面添加配置

  最佳方式:在path最后面添加配置并重启资源管理器

@echo off 
:: 在Path最前面添加JDK环境(编译
&运行)
wmic ENVIRONMENT
where "name='path' and username='<system>'" set VariableValue="%path%;%~dp0jdk1.7.0_79\bin"
echo
%path%
:: 重启资源管理器
taskkill
/f /im explorer.exe
start explorer.exe
exit
 

  效果展示:

批处理设置环境变量 

批处理设置环境变量