mjs*_*jsr 19 windows environment-variables
如果我有一个具有相同名称的系统和用户环境变量,它们是如何处理的?它们是连在一起的吗?用户变量是否覆盖系统变量?考虑到这一点,如果我需要在Path变量中添加一些内容,添加它会更方便吗?
spl*_*ash 15
我认为这篇文章应该回答你的问题:Windows NT中的环境变量
用户环境变量
用户环境变量也可以从控制面板查看.用户可以在User Environment Variables for User字段中添加,删除或修改环境变量.这些变量优先于系统环境变量.用户路径将附加到系统路径.
Jon*_*ndt 10
飞溅和西蒙在他们的答案中所说的一切都是正确的。附加用户路径变量的想法已被强调,我相信这种差异的后果需要一些额外的处理。
路径 = %Path% (系统); %Path%(用户)
当你执行一个可执行程序(或任何可执行脚本,如.bat,.vbs等),则无需提供完全合格的路径。
例如,要运行java,您可以输入以下任何内容:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Run Code Online (Sandbox Code Playgroud)
第一个示例使用完全限定的路径。这将始终使用该确切路径上的 Java 版本。
第二个示例将遍历%Path%环境变量中的每个目录,查找名为java.exe. 它将运行找到的第一个,并停止搜索。如果在 上java.exe某处命名了两个文件%Path%,则仅使用找到的第一个文件。
第三个示例与第二个示例一样,将遍历 .csv 文件中列出的目录%Path%。此外,由于未提供文件扩展名,可执行文件扩展名列表会按照%PATHEXT%环境变量中指定的顺序附加到文件名。如果在某处有多个名为java.com、java.exe、java.bat等的文件%Path%,则仅使用找到的第一个文件。
您可以通过创建以下批处理文件来查看系统上的可执行路径扩展列表:
@echo off
echo %PATHEXT%
pause
Run Code Online (Sandbox Code Playgroud)
在我的机器上,这些是:
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY
在鲜明的对比到其他环境变量,用户路径不允许您覆盖系统路径。情况正好相反。从上面的例子来看,在很多情况下你可能会改变 Java 的默认版本。但是,如果系统路径中已经列出了 Java 版本,则该版本总是最先找到的,因为路径是按顺序搜索的,从左到右,并且用户路径附加在右侧-hand 侧,系统路径在左侧。
如果您无权访问系统环境变量,则无法使用用户路径覆盖系统路径上的默认程序。(事实上,一定是这样,否则某些程序会停止正常工作,并使您的系统受到恶意软件的篡改。没有人想要这样。)
相反,如果您必须使用特定版本,则必须使用完全限定的路径。
| 归档时间: |
|
| 查看次数: |
18793 次 |
| 最近记录: |