使用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. python爬虫---字体反爬

    目标地址:http://glidedsky.com/level/web/crawler-font-puzzle-1 打开google调试工具检查发现网页上和源码之中的数字不一样, 已经确认该题目为 字 ...

  2. 在vue项目中配置webpack

    首先我们来看一下使用Vue-cli2与Vue-cli2之后的版本(这里以Vue-cli4版本为例)创建项目目录结构的不同: Vue-cli2(左图)与Vue-cli4(右图)创建项目的目录 从上图可以 ...

  3. 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划

    前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...

  4. python练习-20200826

    1:L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python', 'Ruby', 'PHP'], ['Adam', 'Bart','Lisa'] ...

  5. 源码解析Synchronous Queue 这种特立独行的队列

    摘要:Synchronous Queue 是一种特立独行的队列,其本身是没有容量的,比如调用者放一个数据到队列中,调用者是不能够立马返回的,调用者必须等待别人把我放进去的数据消费掉了,才能够返回. 本 ...

  6. 【位运算】剑指offer 56. 数组中数字出现的次数

    这是一系列位运算的题目,本文将由浅入深,先从最简单的问题开始: 问题1: 一个数组中只有一个数字出现过1次,其余数字都出现过两次,请找到那个只出现1次的数字.要求时间复杂度是 \(O(n)\),空间复 ...

  7. SQL注入到getshell

    SQL注入到getshell 通过本地 pikachu来复现  前提: 1.存在SQL注入漏洞 2.web目录具有写入权限 3.找到网站的绝对路径 4.secure_file_priv没有具体值(se ...

  8. wsgiref模块、web框架、django框架简介

    """web框架:将前端.数据库整合到一起的基于互联网传输的python代码 web框架也可以简单的理解为是软件开发架构里面的'服务端'""" ...

  9. Redis GEO 地理位置

    目录 GEO指令 GEOADD GEODIST GEOPOP GEOHASH GEORADIUS GEORADIUSBYMEMBER 指令补充 删除操作 避免单集合数量过多 存储原理 GEOADD存储 ...

  10. 使用 VS Code + Markdown 编写 PDF 文档

    背景介绍 作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 markdown 这个技能,使用 markdown 来编写并生成 PDF 文档将会是一个不错的体验,以下就介绍下如 ...