在我的 Windows 7 机器上,使用系统属性 > 环境变量工具,我尝试将其添加%USERPROFILE%\Bin
到系统变量中。由于某种原因,尽管运行正常PATH
,但该方法不起作用。%SystemRoot%\system32
当我尝试从控制台运行命令时,即使找到了文件夹中的文件,也System32
找不到 Bin 文件夹中的文件。
UserProfile
我所看到的和之间的唯一区别SystemRoot
是前者是用户变量而后者是系统变量。
echo %USERPROFILE%\Bin
产量c:\Users\zano
,如果我c:\Users\zano\Bin
明确添加,一切都正常工作。
这里有什么问题?
答案1
系统变量在用户变量之前设置。因此,在设置系统变量时,您的用户变量都还不存在。
您可能能够创建一个名为 PATH 的新用户变量并将其设置为“ %USERPROFILE%\Bin;%PATH%
”。我还没有测试过,但它可能做你想做的事。不过,USERPROFILE 可能仍未设置,因此你可能需要将路径硬编码到你的用户变量中,但至少它不会影响计算机上的其他用户。
答案2
Stephen Jennings 是对的,但需要澄清一点。在 Windows 中,如果用户变量 Path 存在,则会自动将其附加到系统变量 Path。用户变量 Path 可以使用 %UserProfile%,而系统变量则获取文字“%UserProfile%”。
因此,只需创建用户变量“Path”并将其设置为 %UserProfile%\Bin 即可。
示例 1:
系统变量路径 = C:\WINDOWS\ 用户变量路径 = %UserProfile%\Bin
用户的路径将是
C:\WINDOWS;C:\用户\用户\Bin
示例 2:
系统变量路径 = C:\WINDOWS\;%UserProfile%\Bin
用户变量路径根本没有设置。
用户的路径将是
C:\WINDOWS\;%UserProfile%\Bin
您不想要示例 2。
答案3
与斯蒂芬所说的类似,但是
创建一个名为 PATH 的用户环境变量,在此变量中您可以正确使用 %USERPROFILE% - USERPROFILE 在处理用户部分之前会展开。此用户 PATH 将自动附加到系统路径,因此无需添加 %PATH% 部分。
例如
系统变量:PATH=c:\path1 用户变量 PATH=%USERPROFILE%\path2
结果路径:PATH=c:\path1;C:\Users\myuser\path2