为什么我不能在 %PATH% 中使用 %USERPROFILE%?

Zan*_*ano 7 windows path command-line environment-variables

在我的 Windows 7 机器上,使用系统属性 > 环境变量工具,我尝试添加%USERPROFILE%\Bin到系统变量PATH. 出于某种原因,即使%SystemRoot%\system32工作正常,这也行不通。

当我尝试从控制台运行命令时,即使找到了 Bin 文件夹中的System32文件,也找不到该文件夹中的文件。

我能看到的UserProfile和之间的唯一区别SystemRoot是前者是用户变量,而后者是系统变量。

echo %USERPROFILE%\Binyields c:\Users\zano,如果我c:\Users\zano\Bin明确添加,一切正常。

这里有什么问题?

Ste*_*ngs 12

系统变量在用户变量之前设置。因此,在设置系统变量时,您的用户变量尚不存在。

您可以创建一个名为 PATH 的新用户变量并将其设置为“ %USERPROFILE%\Bin;%PATH%”。我没有测试过它,但它可能会做你想要的。但是,可能仍然没有设置 USERPROFILE,因此您可能需要将路径硬编码到您的用户变量中,但至少它不会影响计算机上的其他用户。


小智 5

斯蒂芬詹宁斯是对的,但只是有点清晰。在 Windows 中,如果 User 变量 Path 存在,它会自动附加到 System 变量 Path。允许用户变量路径使用 %UserProfile% 而系统变量获取文字文本“%UserProfile%”。

因此,只需要创建用户变量“Path”并将其设置为 %UserProfile%\Bin 即可。

示例 1:

系统变量路径 = C:\WINDOWS\ 用户变量路径 = %UserProfile%\Bin

用户的路径将是

C:\WINDOWS;C:\Users\User\Bin

示例 2:

系统变量路径 = C:\WINDOWS\;%UserProfile%\Bin

根本没有设置用户变量路径。

用户的路径将是

C:\WINDOWS\;%UserProfile%\Bin

您不想要示例 2。