windows的环境变量有两套:

  • 系统的
  • 当前用户的

不同的用户可以拥有不同的环境变量,当前用户的环境变量优先级比系统的环境变量优先级高,PATH环境变量比较特殊,它不是替换而是拼接。

在命令行下也可以修改环境变量,但是却需要管理员权限,且此过程可能会被安全软件拦截。下面介绍两个命令:

  • set x=13

    只在当前会话下有效,这种方式也是最鼓励采用的方式,因为这样能够降低不同软件之间发生冲突的概率。
  • setx x 13

    注意,这句话中没有等号,setx命令会把x这个环境变量添加到当前用户的环境变量中去,不影响系统环境变量。使用setx /?可以查看这个命令的详情。

setx在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输入设置变量。

有三种使用方式:

  • 语法 1:

    SETX [/S system [/U [domain]user [/P [password]]]] var value [/M]

  • 语法 2:

    SETX [/S system [/U [domain]user [/P [password]]]] var /K regpath [/M]

  • 语法 3:

    SETX [/S system [/U [domain]user [/P [password]]]] /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]

参数列表:

/S system 指定要连接到的远程系统。

/U [domain]user 指定应该在哪个用户上下文执行命令。

/P [password] 指定给定用户上下文的密码。如果省略则提示输入。

var 指定要设置的环境变量。

value 指定分配给环境变量的值。

/K regpath 指定变量是基于注册表项的信息而设置的。路径的格式应该是 hive\key...\value。例如 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName。

/F file 指定要使用的文本文件的文件名。

/A x,y 指定绝对文件坐标(线 X,项目 Y)作为在此文件里搜索的参数。

/R x,y string 指定有关“字符串”作为搜索参数的相对文件坐标。

/M 指定应该在系统 (HKEY_LOCAL_MACHINE) 环境中设置此变量。在 HKEY_CURRENT_USER 环境下,默认将设置此变量。

/X 用 x,y 坐标显示文件内容。

/D delimiters 指定其他限定符,如 "," 或 ""。内置分隔符是空格、制表符、回车和换行符。所有ASCII 字符都可作为限定符。限定符的最大数量,包括内置分隔符,是 15。

/? 显示此帮助消息。

注意: 1) SETX 在注册表中将变量写入主机环境。

  1. 在本地系统,用此工具创建或修改的变量将在以后的命令窗口可用,但在当前的 CMD.exe 命令窗口。

  2. 在远程系统,用此工具创建或修改的变量在下次登录会话可用。

  3. 有效的注册表项数据类型是 REG_DWORD,REG_EXPAND_SZ,REG_SZ和 REG_MULTI_SZ。

  4. 受支持的配置单元: HKEY_LOCAL_MACHINE (HKLM),HKEY_CURRENT_USER (HKCU)。

  5. 限定符区分大小写。

  6. REG_DWORD 的值是从注册表里以十进制格式提取出来的。

示例:

SETX MACHINE COMPAQ
SETX MACHINE "COMPAQ COMPUTER" /M
SETX MYPATH "%PATH%"
SETX MYPATH ~PATH~
SETX /S system /U user /P password MACHINE COMPAQ
SETX /S system /U user /P password MYPATH ^%PATH^%
SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Control\TimeZoneInformation\StandardName
SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\CurrentBuildNumber" /M
SETX /S system /U user /P password TZONE /K HKEY_LOCAL_MACHINE\
System\CurrentControlSet\Control\TimeZoneInformation\
StandardName
SETX /S system /U user /P password BUILD /K
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
CurrentVersion\CurrentBuildNumber" /M
SETX /F ipconfig.out /X
SETX IPADDR /F ipconfig.out /A 5,11
SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*."
SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway
SETX /S system /U user /P password /F c:\ipconfig.out /X

windows修改环境变量的更多相关文章

  1. Windows系统上安装多个版本jdk,修改环境变量不生效

    本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行 java -version 得到java version ...

  2. windows 安装多个版本的jdk后修改 环境变量不起作用

    本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行java -version得到java version &q ...

  3. window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法

    window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装 ...

  4. 【转】windows7 修改环境变量 和 用不用重启电脑的讨论

      原文:http://www.cnblogs.com/zhenmingliu/archive/2013/02/21/2921396.html   先到我的电脑>属性>高级>环境变量 ...

  5. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  6. Windows系统 环境变量

    用户变量与系统变量 用户变量只对当前用户有效,而系统变量对所有用户有效.在检索命令时,系统变量会排在用户变量的前面.也就是说,如果两个地方都包含同一个命令,则优先执行系统变量指示路径下的命令. set ...

  7. 批处理,修改环境变量path的方法(加环境变量)

    方法一:批处理中,修改环境变量,一次性有效(也就是在当前的脚本中有效) CMD中运行 set path==%path%;d:/mypath 用 set path可以查看,当前的环境变量 方法二 :批处 ...

  8. Windows 下环境变量设置(命令行)

    0. 背景 查了一下 SETX 命令可以实现,先简单看了下帮助.以后再写一个实例. 1. SETX /?    输出内容: SetX 有三种使用方式: 语法 1: SETX [/S system [/ ...

  9. Linux修改环境变量的方法

    在Linux操作系统中,有时候跟着教程安装了一些软件,安装成功后,很高兴的准备运行该软件相应命令,但是偶尔会遇到”Command not found…“的提示.原因是因为你安装的软件需要设置环境变量才 ...

随机推荐

  1. set练习

    #include <iostream> #include <set> #include <vector> using namespace std; int main ...

  2. sklearn文本特征提取

    http://cloga.info/2014/01/19/sklearn_text_feature_extraction/ 文本特征提取 词袋(Bag of Words)表征 文本分析是机器学习算法的 ...

  3. java 从网络Url中下载文件 (转)

    http://blog.csdn.net/xb12369/article/details/40543649/ /**       * 从网络Url中下载文件       * @param urlStr ...

  4. Pandas对行情数据的预处理

    库里是过去抓取的行情数据,间隔6秒,每分钟8-10个数据不等,还有开盘前后的一些数据,用Pandas可以更加优雅地进行处理. 需要把当前时间设置为index df=df.set_index('time ...

  5. IIS 7.5: HOW TO ENABLE TLS 1.1 AND TLS 1.2

    In IIS 7.5, which is installed on Windows 2008 R2 servers, only SSL 3.0 and TLS 1.0 are enabled for ...

  6. BigDecimal 的幂次方运算

    public static void main(String[] args){ BigDecimal bg1, bg2; bg1 = new BigDecimal("200000.45&qu ...

  7. 了解JavaScript(1)- Hello World

    JavaScript 简介 JavaScript 是一种可以给网页增加交互性的编程语言. 熟悉 JavaScript 的好方法是"站在其他程序员肩膀上",即Web 上有大量 Jav ...

  8. 在webstorm中配置sass环境

    最近开始用SASS,LESS等来写CSS,而在Webstorm中,它自带一个File Watchers功能,设置一下,即可实时编译SASS,LESS等. LESS的实时编译很简单,在node平台安装一 ...

  9. 数据驱动测试二:使用TestNG和CSV文件进行数据驱动

    转载:https://blog.csdn.net/heart_1014/article/details/52013173 使用@DataProvider注解定义当前方法中的返回对象CSV文件(存放测试 ...

  10. 【转】java并发编程系列之ReadWriteLock读写锁的使用

    前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...