gpt4 book ai didi

windows - 为什么 setx 路径不起作用?

转载 作者:可可西里 更新时间:2023-11-01 13:28:19 30 4
gpt4 key购买 nike

谁能解释这个结果?

设置路径后,没有变化。这是在管理员命令行中运行的:

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.

显然保存在当前用户环境中。

然后我打开一个new non-admin 命令窗口,然后:

>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`

它没有改变。为什么?

最佳答案

在 Windows 中,每个进程都会获得一份环境副本,该副本本质上是进程启动时全局环境的快照。进程运行时对全局环境的更改不会传播回进程自己的环境副本。

为了回答实际问题,setx 确实修改了用户环境(或者如果使用 /M 运行则为系统环境),但更改不会立即在执行 setx 的进程,在本例中为 cmd.exe。如果您在运行 setx 后打开一个 命令提示符,您将在 那个 cmd.exe .

这在 setx/? 帮助中明确指出:

On a local system, variables created or modified by this tool will be available in future command windows but not in the current CMD.exe command window.

要在两个全局环境和当前进程之一中实现相同的更改,您需要运行both setx设置

关于windows - 为什么 setx 路径不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347451/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com