批处理教程: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 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号