使用setx /M path "%path%;%%winrar%%"这种方式修改环境变量存在的问题

  1. 对于 path 这种 既有用户级变量和系统级变量的变量 直接使用setx /M path "%path%;%%winrar%%"会将用户变量一起添加到系统级变量中。再加上已经存在的用户环境变量 path环境变量就会冗余。
  2. 不管是 path 或 echo %path% 亦或 set path 这三种方式都 只是将值 直接赋值给path,环境变量中的 引用的环境变量 全部破坏。

win10初始时的path

系统级path
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
%SYSTEMROOT%\System32\OpenSSH\ 用户级path
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps; 使用path查看
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\zbf\AppData\Local\Microsoft\WindowsApps;

执行setx /M path "%path%;%%winrar%%"后的path

系统级path
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Windows\System32\OpenSSH\;
C:\Users\zbf\AppData\Local\Microsoft\WindowsApps;
C:\Program Files\WinRAR; 用户级path还会保留,还是原址
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps; 使用path查看
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\zbf\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WinRAR;C:\Users\zbf\AppData\Local\Microsoft\WindowsApps;

给PATH追加环境变量

这里使用的方法时 直接从注册表中查,然后从查询结果中截取出数据,再使用setx将结果拼接上新路径 赋给Path

以下是从注册表中查询path的系统级变量,并截取出数据

@echo off
Setlocal enabledelayedexpansion
@REM vscode中自动开启延迟环境变量扩展, @REM 环境变量在注册表中的位置
@REM reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "Path" set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" @REM 方式1 分列方式感觉有点问题
@REM for /F "skip=2 delims=Z tokens=2*" %%i IN ('reg query %key% /v "Path"') do (
@REM echo %%i
@REM set temppath=%%i
@REM echo !temppath:~4!
@REM ) @REM 方式2
for /F "skip=2 delims=" %%i IN ('reg query %key% /v "Path"') do (
echo %%i
set temppath=%%i
echo !temppath:~29!
) @rem 方式3
for /F "skip=2 tokens=3" %%i IN ('reg query %key% /v "Path"') do (
echo %%i
) pause

bat-配置环境变量2-给PATH追加环境变量的更多相关文章

  1. Windows下PATH等环境变量详解

    在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示 ...

  2. Windows下PATH等环境变量详解(转载)

    本文转载自http://legend2011.blog.51cto.com/3018495/553255 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念, ...

  3. 【转】Windows下PATH等环境变量详解

    [转]“肖凡的专栏” 博客,请务必保留此出处http://legend2011.blog.51cto.com/3018495/553255 在学习JAVA的过程中,涉及到多个环境变量(environm ...

  4. JAVA基础学习——1.1 环境搭建 之jdk安装,环境变量配置 (系统Win10,64bit)

    大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候, ...

  5. 配置免安装版JAVA1.7的环境变量

    我用的是免安装版JAVA1.7,假设想获取JDK能够联系问我要. 1.開始配置环境变量,右击[我的电脑]---[属性]-----[高级]---[环境变量],如图: 2.选择[新建系统变量]--弹出&q ...

  6. Java开发环境搭建(二):环境变量配置

    如果不配置环境变量,java 命令就只能在 bin 目录下才能使用,而且很多Java软件也需要在配置JAVA_HOME和PATH的状态下才能运行.为了在任何目录下都可以使用 java 命令.保证程序正 ...

  7. 使用kuboard界面配置springcloud的其中一个模块设置环境变量,使用nacos配置地址等有关设置

    总结: 工作负载类型是StatefulSet的pod,不论其上层的service是nodeport还是Headless, 对外提供的地址格式是: <pod name>.<servic ...

  8. mysql+tomcat+spring 配置心得(从0开始搭环境)

    前几天公司竞一个标要做个POC,前端AugularJs做mobile界面,后端Spring MVC做Restful API供前端调用. 时间紧急,大家都忙,so我这个不写代码的闲人花一上午配了一套Sp ...

  9. Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境

    环境变量配置 如果电脑里之前下载过Codeblocks或者Dev,找到文件根目录,打开MinGw(或者MinGw64),点开bin目录,将bin文件夹的目录复制下来(以Codeblocks为例,将文件 ...

随机推荐

  1. synchronized有几种用法?

    在 Java 语言中,保证线程安全性的主要手段是加锁,而 Java 中的锁主要有两种:synchronized 和 Lock,我们今天重点来看一下 synchronized 的几种用法. 用法简介 使 ...

  2. 邮件html页编写指南

    前言 写过邮件的html一般都用table来布局,为什么呢?原因是大多数的邮件客户端(比如Outlook和Gmail),会过滤经过多次的邮件编写实践及度娘的指导,我发现,编写自制兼容outlook与f ...

  3. Azure DevOps (十一) 通过Azure Devops部署一个.NET Core WebAPI

    前几篇文章中,我们讨论了如何通过流水线实现项目的编译.上传.打包.部署等操作,今天我们来实现一套完整的流程,把之前碎片化的知识点给串起来. 本次我们使用一个ASP.NET Core的WebApi项目来 ...

  4. HashMap和Hashtable以及ConcurrentHashMap的区别

    ​ HashMap和Hashtable的区别 何为HashMap HashMap是在JDK1.2中引入的Map的实现类. HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部 ...

  5. Promql基础语法2

    数据样本 直方图类型 delta函数 运算操作 数学运算 node_disk_info / 100 当瞬时向量与标量之间进行数学运算时,数学运算符会依次作用域瞬时向量中的每一个样本值,从而得到一组新的 ...

  6. python学习-Day19

    目录 今日内容详细 正则表达式 开端 概念及相关符号 正则表达式之字符组 正则表达式之特殊符号 正则表达式之量词 小试牛刀 实现手机号码校验功能 复杂正则的编写 校验用户身份证号码 校验邮箱.快递单号 ...

  7. 借助ADB冻结与卸载Android系统应用(免ROOT)

    背景: 我妈的手机饱受系统应用广告推送之苦,每天都能在通知栏里收到好几条广告.为了给她个清净,本篇博文应运而生. 目标: 卸载安卓系统应用 所用工具: 硬件:我妈的手机(魅蓝5) PC端:Minima ...

  8. css实现元素淡入淡出

    @-webkit-keyframes fadeIn { 0% { opacity: 0; /*初始状态 透明度为0*/ } 50% { opacity: 0; /*中间状态 透明度为0*/ } 100 ...

  9. mySql in 语句查询优化

    有这么一条sql UPDATE product set BuyerCount =BuyerCount+1 where ProductId in( SELECT ProductId from order ...

  10. OPRF

    在PSI中经常用到OPRF技术,现在系统学习一下. PRF Pseudo Random Function,伪随机函数,主要就是用来产生为伪随机数的. 伪随机数 什么伪随机数? 伪随机数是用确定性的算法 ...