Windows setx命令的使用(命令行实现永久设置环境变量)

本文介绍了Windows中使用setx命令创建和管理环境变量的方法,包括设置用户和全局环境变量、处理含有特殊符号的变量值,以及解决因空格、权限和字符限制等问题。特别指出,为避免变量值中的特殊符号被解析,可以使用特定转义方式进行设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想着每次手动设置环境变量还是很麻烦,我决定使用setx命令加之批处理实现。在使用这个命令的过程中也踩了很多坑,在此想做一个总结。

setx用法:

设置用户环境变量

setx "变量名" "变量值"

设置计算机(全局)环境变量

setx "变量名" "变量值" /m

可见,在最后加上 /m即可设置全局环境变量。

用法还是非常简单的。

常见错误:

1,错误: 无效语法。默认选项不允许超过 '2' 次。

这是由于设定变量值中间包含空格导致。所以使用这个命令的时候,变量名和变量值最好都用英文引号包围。

例如:

setx "a" "a a"    

setx "a" a a    ×

2,错误: 拒绝访问注册表路径。

在设置全局变量时需要有管理员权限,右键-以管理员身份运行cmd即可。

3,警告: 正保存的数据被裁断到 1024 字符。

设置的变量值太长。

变量值中的特殊符号处理:

假设我们要设定的变量值里面包含特殊符号,而我们又希望这些特殊符号原封不动地被设置进去,应当如何操作呢?

1,"

英文双引号一般会被当做字符串开始或者结束。若要表示英文分号在变量值中,可以使用\"代替。

例如:

setx "t" "a\"b\"c" /m

运行后效果:

 2,%

总所周知,两个百分号包围的东西在命令行里面会被当做变量直接带值。

而例如Java的环境变量配置中,我们知道要在Path后面加上%JAVA_HOME%\bin这个值。

而如果直接使用setx命令为Path追加Java环境变量的话:

setx "Path" "%Path%;%JAVA_HOME%\bin" /m

效果:

可见,他直接把JAVA_HOME变量的值带进去了,而这没达到我们的预期:就是直接在Path里面写入%JAVA_HOME%\bin而不是把JAVA_HOME的值带进去(把%JAVA_HOME%原封不动地写进去)。

这时,对于你不想替换的变量,就如下操作:

setx命令中,若想不展开%的变量引用,用^%来代替%即可。例如我设定classpath变量值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,命令如下:

setx "classpath" ".;"^%JAVA_HOME^%"\lib\dt.jar;"^%JAVA_HOME^%"\lib\tools.jar" /m

需要注意的是,对值引用的那一段语句不能用引号包围,其余的最好用引号包围,然后接在一起,还是仔细观察上述命令:

效果:

可见通过此方式可以不展开值引用直接设定。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值