【发布时间】:2016-05-22 17:00:08
【问题描述】:
谁能解释一下这个结果?
设置路径后,它没有改变。这是在管理员命令行中运行的:
C:\Windows\system32>setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin"
SUCCESS: Specified value was saved.
C:\Windows\system32>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;D:\Program Files (x86)\metapad36;D:\Program Files (x86)\metapad36" /M
我读过 %PATH% = 机器的 PATH 变量 + 用户的 PATH 变量。我看到的是机器路径 + 管理员的路径吗?
看过有关该主题的其他文章,但仍然感到困惑。
我应该清除用户路径,以免重复吗?
更新:重新提示“此工具创建或修改的变量将在以后的命令窗口中可用”我打开一个非管理员窗口并输入:
>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin
路径重复两次。好的,然后在同一提示下,我 setx 没有重复的路径,也没有 /M:
>setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin"
SUCCESS: Specified value was saved.
显然保存在当前用户环境中。
然后我打开一个新 非管理员命令窗口,然后:
>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin`
它没有改变。为什么?
【问题讨论】:
-
如果“重复”来自系统变量,您还需要
setx /M更正后的path(当然,在提升的 cmd 提示符下)。更改path的用户值不会删除在path的系统值中定义的条目。 -
听起来您是在说在 非管理员 命令行上输入的
path返回系统范围的路径,而不是用户级别 i> 路径。真的吗?我注意到在 non-Admin 命令行上输入path返回的结果与在 Admin 命令行上输入的path不同。但是如果两种情况都返回系统路径,为什么它们不同?谢谢 -
不,你误会了。您只需要提升的提示符就可以让
setx /M被允许更改系统环境变量path。除此之外,提升(以管理员身份运行)和常规(非提升)cmd 提示具有相同的环境。请注意,PATH特别是系统 PATH + 用户 PATH 的组合,例如,请参见 Environment variables in Windows NT:The User path is appended to the system path.如果您以某种方式将两者设置为相同的值,则生成的 PATH 将包含您所看到的重复项。跨度>
标签: windows path environment-variables