wmic编辑环境变量的使用方法和一些需要注意的点

let userEnvironmentName = `${os.hostname()}\\\\${basename(os.homedir())}`
//删除用户环境变量OPENCV_HOME
execSync(`wmic ENVIRONMENT where "name='OPENCV_HOME' and UserName='${userEnvironmentName}'" delete`)

//新增用户环境变量OPENCV_HOME,重复会报错,所以先删除后下载
	execSync(`wmic ENVIRONMENT create name="OPENCV_HOME",username="${userEnvironmentName}",VariableValue=${data}Mobile\\All\\opencv\\build\\java\\x64\\opencv_java342.dll`, {})

//更改用户环境变量
	let pathValue = ''
	//先获取用户path的值进行处理,让后储存,不然连带系统环境变量都会写入。
	pathValue = execSync(`wmic ENVIRONMENT where "name='Path' and UserName='${userEnvironmentName}'" get VariableValue`, { encoding: 'utf-8' })
		.replace('VariableValue', '')
		.trim()
		.replace(/\n/g, '')
		.replace(/%/g, '^%')
	if (!pathValue.includes('platform-tools')) {
    //将用户的原本的path环境变量储存和要增加的一起放入
		execSync(
			`wmic ENVIRONMENT where "name='Path' and UserName='${userEnvironmentName}'" set VariableValue='${pathValue};^%ANDROID_HOME^%\\platform-tools;^%ANDROID_HOME^%\\tools;C:\\Program Files\\nodejs;^%JAVA_HOME^%\\bin;^%JAVA_HOME^%\\jre\\bin;'`,
			{}
	}
//用户环境变量用户名。
let userEnvironmentName = `${os.hostname()}\\\\${basename(os.homedir())}`
//删除用户环境变量
`wmic ENVIRONMENT where "name='OPENCV_HOME' and UserName='${userEnvironmentName}'" delete`
//新增用户环境变量
`wmic ENVIRONMENT create name="OPENCV_HOME",username="${userEnvironmentName}",VariableValue=`
//获取用户环境变量
`wmic ENVIRONMENT where "name='Path' and UserName='${userEnvironmentName}'" get VariableValue=`
//更改用户环境变量
`wmic ENVIRONMENT where "name='Path' and UserName='${userEnvironmentName}'" set VariableValue='^%path^%'`

在这里插入图片描述

name是环境变量名,UserName是环境变量存在的位置,主要是系统和用户,VariableValue是环境变量值

tips1:userEnvironmentName就是UserName,这里是最重要,想要改变系统环境变量就需要权限,系统的名称一般为<SYSTEM>,想要改变用户变量就一定需要用户环境变量的用户名称,通过获取用户环境变量可以更清楚的看到,,也就是关键代码中用户环境变量用户名的那一段,需要自己去获取,我的os.hostname()}\\${basename(os.homedir())不一定是对的,一般来说就是电脑名称\用户名称

tips2:更改用户环境变量中我的操作很复杂,因为%path%获取的是全部的环境变量,包括系统和用户,想要只改变用户的环境,那么就需要先获取用户的环境变量进行处理,然后进行拼接,这样也有一些好处在tips3中。

tips3:更改变量最关键的一个问题就是很多%%中的环境变量会被翻译出来,这个时候需要进行转义也就是将%变成^%,这个时候需要主要的就是""和’‘,双引号在cmd批处理中是有着转义的意思的,所以^在双引号中有时候无效,可以合理的使用’',这样在环境中的%%就可以保持原本的样子了。
https://blog.csdn.net/qq_39621009/article/details/122349526
https://www.cnblogs.com/mqxnongmin/p/10875515.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值