批处理教程:SET和SETX命令

本文将介绍怎样在批处理BAT脚本中,通过 SET 和 SETX命令设置环境变量。

在Windows系统中,我们在运行软件时,需要配置一些环境变量。例如:运行java程序,就需要配置 java_home、classpath、path 等环境变量。下面将通过java程序来讲解通过 set 和 setx 来配置环境变量。


临时环境变量

使用set命令可以设置环境变量,但是通过set设置的环境变量只能在当前cmd shell环境中有效,关闭运行环境环境变量将不保存。例子:

@echo off  
set PATH=C:\Java\jdk1.8.0_31\bin  
set /p cmd="环境变量设置完成,输入javac回车测试:"  
%path%  
@pause


永久环境变量

永久环境变量我们可以通过环境变量配置界面进行配置,也可以直接使用setx命令进行设置。Window XP 以上的系统都自带了该命令(如果没有,下载一个Setx.exe),这种方式为永久设定环境变量。


设置用户环境变量 

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


设置系统环境变量

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


注意:

  • 在某些情况下会出现“setx 无效语法 默认选项不能超过’2’次”的错误,据信是因为原先的环境变量中存在空格导致的,可使用双引号进行避免。

  • setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。

  • setx在设置变量的长度超过1024,会截取多出的字符。

  • setx还可以操作远程计算机,具体参数设置百度一下setx用法。

  • setx在设置某一变量的值,如果已经存在该变量会覆盖之前的值。所以正确方式是:要保存值=获取当前该变量的值+新值。


例如:set oldValue=获取当前变量值

          setx path %oldValue%;%newValue%


以下为获取用户环境变量path的值,该例子读取注册表内的值。

@echo off  
set regPath= HKEY_CURRENT_USER\Environment  
set key=path  
::判断是否存在该路径  
reg query %regPath% /v  %key% 1>nul 2>nul  
if %ERRORLEVEL%==0 (  
::取值  
For /f "tokens=3,4 delims= " %%v in ('Reg Query %regPath% /v %key% ') do Set oldValue=%%v   
) else Set oldValue=""  
echo %key%的原值为:%oldValue%  
pause


原文地址:

https://blog.csdn.net/su1322339466/article/details/52983052



时间是一切财富中最宝贵的财富。 —— 德奥弗拉斯多
0 不喜欢
说说我的看法
全部评论(
没有评论
热门标签
热门文章
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com