我认为我的环境变量中的 PATH 工作不正常,想问几个有关环境变量的常见问题。
用户变量和系统变量有什么区别?什么时候应该使用?如果用户和系统变量都使用同一个变量怎么办?这无所谓,因为系统变量涵盖了所有用户?
我正在尝试使用快捷方式使我的 PATH 更简洁。例如,我已将我的 设置
JAVA_HOME
为C:\Program Files\Java\jdk1.6.0_25\bin
,然后PATH
设置为。但是,当我在 cmd 中%JAVA_HOME%\bin
输入 时,它仍然显示。我应该担心它不是 吗?"echo %PATH%"
%JAVA_HOME%\bin
"C:\Program Files\Java\jdk1.6.0_25\bin"
如果我想检查我的路径中是否存在 xml,我该如何验证?
因为有些程序不喜欢环境变量中有空格,所以建议使用 C:\Progra~1\ 而不是 C:\Program Files\ ,如下所示:http://ist.berkeley.edu/as-ag/technology/howto/install-java-sdk-win.html执行此操作的程序是什么?我在哪里开始中断并添加 ~1。它总是 1 吗?
谢谢你!
答案1
当用户登录系统时,用户路径和系统路径会合并在一起。如果没有用户登录,%PATH% 变量将仅反映系统路径。
用户变量是根据每个用户配置的,并且仅在特定用户登录时生效。
系统变量适用于系统上的所有用户。各种 Windows 目录和 Java 子系统,以及其他适用于所有用户的目录均被设置为系统路径的一部分。
您不应该这样做,因为并非所有程序都支持它。只需指定大多数程序期望的完整路径,就可以了。
%PATH% 变量中不应有 XML,因为XML 中广泛使用的
<
和字符是无效的目录变量。>
一些旧的 DOS 程序可能会遇到此问题,但自 Windows XP 以来,我从未遇到过路径元素中存在空格的问题。只需确保您指定的每个包含目录名称空格的路径都括在引号中即可。您引用的推荐此做法的文档似乎已经过时,因为它讨论了 Java v1.5(Java v1.6 已经推出多年,许多人预计 Java v1.7 很快就会发布)。
- 名称并不总是缩短为 8.3,并以 ~1 后缀结束文件名部分。例如,在 64 位 Windows 上,您可以在 DOS 提示符下键入“Dir C:\PRO*”,您将看到至少两个条目(通常“PROGRA~1”表示“Program Files”,“PROGRA~2”表示“Program Files (x86)”)。
答案2
用户变量仅在您的用户运行时存在,并且仅在您的用户上下文中运行的进程可访问。另一方面,系统变量可供所有用户访问。
(我第一次写的时候并不是 100% 确定,但我刚刚为你测试了这一点并重做了这个答案!)。变量在被调用时被访问。我做了以下测试:
set testing=c:\test set path=%testing% path -----result----- > PATH=c:\test
我还通过创建一个名为的环境变量testing
然后将我的路径设置为来重现了您的步骤%testing%
。我再次进入命令提示符,当我输入路径时,我得到了相同的结果
PATH=c:\test
所以,看起来这应该可以正常工作。经过进一步检查,这似乎是微软和其他供应商所做的 - 有很多%systemroot%
在路径中定义但在其他地方定义的变量的情况。
3
。没有简单的方法,Path 是一个旧的 DOS 命令,用于在文件夹外运行可执行文件和命令。虽然如果你想要命令行访问,它不是很有用,但可以尝试查看以下工具一切这可以使文件非常容易获取!
4.
我真正能做的就是重复@Randolf Richardson 的回答... 6 个字符 + ~1
(每个文件夹增加一个)并尝试将带有空格的名称放在引号中。